avto-dev/cloud-payments-laravel

云支付 PHP 客户端

v1.8.0 2024-05-31 11:33 UTC

This package is auto-updated.

Last update: 2024-08-31 00:27:35 UTC


README

logo

云支付 PHP 客户端

Version PHP Version Build Status Coverage Downloads count License

该软件包提供了使用云支付 API的简单方法。

安装

使用以下命令通过 composer 安装此软件包

$ composer require avto-dev/cloud-payments-laravel

需要安装 composer如何安装 composer)。

配置

您可以在此处找到 Laravel 框架集成。

对于客户端配置,请使用 Config 实例。客户端构造函数需要您在 CloudPayments 个人区域中可以找到的 公共 IDAPI 密钥

use AvtoDev\CloudPayments\Config;

$config = new Config('pk_some_key', 'some_api_key');

使用方法

选择以下请求构建器之一。

$request_builder = new \AvtoDev\CloudPayments\Requests\Payments\Cards\CardsAuthRequestBuilder;

通过设置器设置所有必要的参数。

/** @var $request_builder \AvtoDev\CloudPayments\Requests\AbstractRequestBuilder */

$request_builder->setAccountId('some_id');
$request_builder->setName('name');

获取 PSR7 请求。

/** @var \AvtoDev\CloudPayments\Requests\AbstractRequestBuilder $request_builder */
/** @var \Psr\Http\Message\RequestInterface $request */

$request = $request_builder->buildRequest();

设置客户端并发送请求。

$client = new \AvtoDev\CloudPayments\Client(
    new \GuzzleHttp\Client,
    new \AvtoDev\CloudPayments\Config('public_id', 'api_key')
);

/** @var \Psr\Http\Message\RequestInterface $request */
$response = $client->send($request);

API 客户端

构造

构造函数需要任何 GuzzleHttp\ClientInterface 实例和 Config 实例。

/** @var \AvtoDev\CloudPayments\Config $config */

use AvtoDev\CloudPayments\Client;
use GuzzleHttp\Client as GuzzleClient;

$client = new Client(new GuzzleClient, $config);

发送

此方法允许您发送任何 Psr\Http\Message\RequestInterface 并返回唯一的 Psr\Http\Message\ResponseInterface,这允许您根据需要构建自己的请求或使用提供的请求构建器之一。

此客户端只做一件事:授权 CloudPayments 的请求并将它们发送出去。

$request = new \GuzzleHttp\Psr7\Request('POST','https://api',[],'{"foo":"bar"}');

/** @var \AvtoDev\CloudPayments\Client $client */
$response = $client->send($request);

请求构建器

支持的构建器

如何获取 卡密文数据包

幂等性

幂等性 是 API 在重复请求的情况下不重新处理而产生与第一次相同结果的能力。这意味着您可以向系统发送多个带有相同标识符的请求,并且只会处理一个请求。所有响应都将相同。因此,实现了对网络错误的保护,这可能导致创建重复的记录和操作。

要启用幂等性,需要调用 setRequestId('request_id') 方法并在 API 请求中使用唯一标识符。请求标识符的生成保留在您的端上——它可以是 guid、订单号、日期和金额的组合或其他您选择的值。每个需要处理的新的请求都必须包含新的 request_id 值。处理的结果将存储在系统中 1 小时。

框架集成

Laravel

Laravel 5.5 及以上版本使用包自动发现,因此不需要您手动注册服务提供者。否则,您必须将服务提供者添加到 ./config/app.php 中的 providers 数组。

'providers' => [
    // ...
    AvtoDev\CloudPayments\Frameworks\Laravel\ServiceProvider::class,
]

Laravel 配置

服务提供者从 services.cloud_payments 配置中选取配置。因此您需要将其放入 config/services.php 文件中。例如

return [
    // ...
    /*
    |--------------------------------------------------------------------------
    | CloudPayments Settings
    |--------------------------------------------------------------------------
    | - `public_id` (string) - Public ID  (You can find it in personal area)
    | - `api_key`   (string) - API Secret (You can find it in personal area)
    |
    */
    'cloud_payments' => [
        'public_id' => env('CLOUD_PAYMENTS_PUBLIC_ID', 'some id'),
        'api_key'   => env('CLOUD_PAYMENTS_API_KEY', 'some api key'),
    ],
];

测试

对于包测试,我们使用 phpunit 框架。只需在您的终端中输入

$ make build
$ make install
$ make test

变更日志

Release date Commits since latest release

变更日志可以在此处找到。

支持

Issues Issues

如果您在此软件包中发现任何错误,请在当前存储库中创建问题

许可证

这是一款开源软件,受MIT许可证许可。