avto-dev / cloud-payments-laravel
云支付 PHP 客户端
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ~7.5
- guzzlehttp/psr7: ^2.6.2
- psr/http-client: ~1.0
Requires (Dev)
- avto-dev/guzzle-url-mock: ^1.6
- fakerphp/faker: ^1.12
- laravel/laravel: ~10.0 || ~11.0
- nesbot/carbon: ^2.66
- phpstan/phpstan: ^1.10.66
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-08-31 00:27:35 UTC
README
云支付 PHP 客户端
该软件包提供了使用云支付 API的简单方法。
安装
使用以下命令通过 composer 安装此软件包
$ composer require avto-dev/cloud-payments-laravel
需要安装
composer
(如何安装 composer)。
配置
您可以在此处找到 Laravel 框架集成。
对于客户端配置,请使用 Config
实例。客户端构造函数需要您在 CloudPayments 个人区域中可以找到的 公共 ID 和 API 密钥。
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
变更日志
变更日志可以在此处找到。
支持
如果您在此软件包中发现任何错误,请在当前存储库中创建问题。
许可证
这是一款开源软件,受MIT许可证许可。