wdevkit / sdk
一个用于wdevkit服务的SDK。
Requires
- php: ^7.4|^8.0
- guzzlehttp/guzzle: ^7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5.1
- vimeo/psalm: ^4.3
This package is auto-updated.
Last update: 2024-09-27 01:56:18 UTC
README
一个用于wdevkit服务的SDK
一个简化了许多wdevkit服务使用的SDK,它提供了一个经过测试、干净且易于使用的API。
安装
您可以通过composer安装此包
composer require wdevkit/sdk
使用方法
wdevkit/sdk提供了对多个wdevkit服务的API。服务由\Wdevkit\Sdk\Api类提供,通过调用相应的服务名称作为静态方法来实现,如下所示
$accounts = \Wdevkit\Sdk\Api::auth($settings); $payments = \Wdevkit\Sdk\Api::payments($settings); $checkout = \Wdevkit\Sdk\Api::checkout($settings); $orders = \Wdevkit\Sdk\Api::orders($settings); $inventory = \Wdevkit\Sdk\Api::inventory($settings);
通过调用静态方法,将实例化一个服务处理器的新实例,并使用给定的$settings数组。在此设置中,您必须提供一个base_uri和一个token,以便正确地向每个服务发出请求。您还可以向服务传递一个client实例。如果没有提供,将使用默认的Guzzle客户端,并使用给定的请求头
'headers' => [ 'User-Agent' => 'wdevkit/sdk:1.x', 'Accept' => 'application/json', 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . <token>, ]
每个实例化的服务处理器可能都有自己的方法,具体方法将在相应的服务文档中描述。
身份验证
获取用户
为了检查您是否已认证,您可以使用\Wdevkit\Sdk\Api::auth($settings)->fetchUser([])方法向wdevkit身份验证服务的/sanctum/user端点发出请求。
$settings = [ 'base_uri' => 'https://auth.your_domain.dev', 'token' => 'some_token' ]; $checkout = \Wdevkit\Sdk\Api::auth($settings)->fetchUser([]); // response 'data' => [ 'uuid' => 'a25d81de-8715-480e-a6cb-df24649e7479', 'name' => 'John Doe', 'email' => 'john@email.com', ]
检出
创建检出
为了创建检出,您可以使用SDK中的\Wdevkit\Sdk\Api::checkout($settings)->create([])方法,并需要提供所需的数据。
$settings = [ 'base_uri' => 'https://checkout.your_domain.dev', 'token' => 'some_token' ]; $checkout = \Wdevkit\Sdk\Api::checkout($settings)->create([ 'items' => [ [ 'name' => 'Black shirt #1', // required 'sku' => 'black_shirt_1', // required 'qty' => 2, // required 'price' => 15.10, // required ], ], 'meta' => [ 'source_type' => 'acme_system', // required 'source_id' => '123456', // required ], ]); // response 'data' => [ 'uuid' => '2dcdf759-1ba1-4d25-aca9-9c0c11224cfd', 'actions' => [ 'get' => 'https://checkout.your_domain.dev/checkouts/2dcdf759-1ba1-4d25-aca9-9c0c11224cfd/profiles', ] ]
支付
获取支付方式
要获取支付方式选项,您可以使用SDK中的\Wdevkit\Sdk\Api::payments($settings)->fetchMethods([])方法。
$settings = [ 'base_uri' => 'https://payments.your_domain.dev', 'token' => 'some_token' ]; $methods = \Wdevkit\Sdk\Api::payments($settings)->fetchMethods([]); // response 'data' => [ 'methods' => [ ['code' => 'credit_card', 'title' => 'Credit Card', 'driver' => 'stripe'], ['code' => 'transfer', 'title' => 'Transfer', 'driver' => 'bank_acme'], ] ]
创建支付
要创建支付,您可以使用SDK中的\Wdevkit\Sdk\Api::payments($settings)->create([])方法,并需要提供所需的数据。
$settings = [ 'base_uri' => 'https://payments.your_domain.dev', 'token' => 'some_token' ]; $methods = \Wdevkit\Sdk\Api::payments($settings)->create([ 'customer' => [ 'name' => 'John Doe', // required 'document' => '12345678909', // required 'email' => 'john@test.dev', // required ], 'payment' => [ 'method' => 'credit_card', // required 'amount' => 125.35, // required, 'installments' => 1, // required 'method_data' => [], // required, and attributes required depending on method. ], 'meta' => [ 'source_type' => 'acme_system', // required 'source_id' => '123456', // required ], ]); // response 'data' => [ 'payment_uuid' => 'fb624d85-5a13-47c7-8ea7-b917490d5e12', 'payment_method' => 'credit_card', 'amount' => '42', 'state' => 'processed', 'status' => 'success', 'errors' => null, 'actions' => [ ['title' => 'Refund', 'code' => 'refund', 'url' => 'https://refund_route'], ['title' => 'Details', 'code' => 'details', 'url' => 'https://details_route'], ], ]
获取支付
要获取先前创建的支付,您可以使用SDK中的\Wdevkit\Sdk\Api::payments($settings)->fetch($uuid)方法。您需要在fetch方法中提供一个payment uuid。
$settings = [ 'base_uri' => 'https://payments.your_domain.dev', 'token' => 'some_token' ]; $methods = \Wdevkit\Sdk\Api::payments($settings)->fetch('fb624d85-5a13-47c7-8ea7-b917490d5e12'); // response 'data' => [ 'id' => 50, 'uuid' => 'fb624d85-5a13-47c7-8ea7-b917490d5e12', 'driver' => 'acme', 'method' => 'credit_card', 'state' => 'processed', 'status' => 'success', 'amount' => '119.0000', 'installments' => 1, 'description' => 'test payment', 'recurring' => null, 'customer' => [ 'name' => 'John Doe', 'email' => 'johndoe@email.com', 'phone' => '999999999', 'document' => '999999999999' ] ]
测试
composer test
变更日志
请参阅变更日志获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请参阅我们的安全策略了解如何报告安全漏洞。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。