wdevkit/sdk

一个用于wdevkit服务的SDK。

v1.0.3 2021-01-26 17:23 UTC

This package is auto-updated.

Last update: 2024-09-27 01:56:18 UTC


README

一个用于wdevkit服务的SDK

Latest Version on Packagist GitHub Tests Action Status Total Downloads

一个简化了许多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)。请参阅许可证文件获取更多信息。