korobovn / cloud-payments
Cloud Payments PHP客户端
Requires
- php: ^7.1.3
- ext-json: *
- guzzlehttp/guzzle: ~6.0
- illuminate/support: ^5.5 || ^6.0
- psr/http-client: ~1.0
- tarampampam/wrappers-php: ^1.2
Requires (Dev)
- fzaninotto/faker: ^1.9
- laravel/laravel: ^5.5 || ^6.0
- phpstan/phpstan: ^0.11.19
- phpunit/phpunit: ~7.5 || ^8
This package is auto-updated.
Last update: 2024-09-29 05:35:41 UTC
README
Cloud Payments PHP客户端
该包用于方便使用Cloud Payments API。
安装
使用以下命令使用composer安装此包:
$ composer require korobovn/cloud-payments
需要安装
composer(如何安装composer)。
框架集成
Laravel 5
Laravel 5.5及以上版本使用包自动发现,因此不需要手动注册服务提供者。否则,您必须将服务提供者添加到./config/app.php中的providers数组中
'providers' => [ // ... Korobovn\CloudPayments\CloudPaymentsServiceProvider::class, ]
用法
如何获取客户端实例
如果使用Laravel框架,则可以使用make方法解析来获取ClientInterface实例。
$client = $this->app->make(Korobovn\CloudPayments\Client\ClientInterface::class);
您可以使用send方法发送请求
$client->send($request);
其中$request是RequestInterface的实例。
您还可以在RequestInterface实例上调用send方法。在此之前,您必须使用ClientInterface调用RequestInterface上的setClient方法
$request->setClient($client)->send();
您可以选择您喜欢的方式。
如何创建请求
可用请求列表
加密支付
CryptogramPaymentOneStepRequest - 用于一步支付;
CryptogramPaymentTwoStepRequest - 用于两步支付。
创建和发送请求
<?php use Korobovn\CloudPayments\Client\ClientInterface; use Korobovn\CloudPayments\Message\Request\CryptogramPaymentOneStepRequest; use Korobovn\CloudPayments\Message\Request\CryptogramPaymentTwoStepRequest; use Korobovn\CloudPayments\Message\Response\Cryptogram3dSecureAuthRequiredResponse; use Korobovn\CloudPayments\Message\Response\CryptogramTransactionAcceptedResponse; use Korobovn\CloudPayments\Message\Response\CryptogramTransactionRejectedResponse; use Korobovn\CloudPayments\Message\Response\InvalidRequestResponse; /** @var ClientInterface $client */ $client = $this->app->make(ClientInterface::class); $request = CryptogramPaymentOneStepRequest::create(); /* or we can also use: $request = new CryptogramPaymentTwoStepRequest; */ $request ->getModel() ->setAmount(100.0) ->setCurrency('RUB') ->setIpAddress('127.0.0.1') ->setName('CARDHOLDER NAME') ->setCardCryptogramPacket('CARD_CRYPTOGRAM_PACKET'); /** @var InvalidRequestResponse|Cryptogram3dSecureAuthRequiredResponse|CryptogramTransactionRejectedResponse|CryptogramTransactionAcceptedResponse $response */ $response = $request->setClient($client)->send();
在调用send方法发送请求之前,我们必须填写请求数据模型。为此,在RequestInterface上调用getModel方法并使用setter设置值。使用您的IDE的自动完成功能来访问setter。
$response必须是以下类之一的实例:InvalidRequestResponse、Cryptogram3dSecureAuthRequiredResponse、CryptogramTransactionRejectedResponse、CryptogramTransactionAcceptedResponse
$response(ResponseInterface的实例)也有其自己的数据模型。使用getModel方法和getter来访问数据。
检查响应类型和访问响应数据模型字段
<?php use Korobovn\CloudPayments\Message\Response\CryptogramTransactionAcceptedResponse; if ($response instanceof CryptogramTransactionAcceptedResponse) { $transaction_id = $response->getModel()->getTransactionId(); $status_code = $response->getModel()->getStatusCode(); $token = $response->getModel()->getToken(); }
3-D Secure处理
CompletionOf3dSecureRequest - 用于完成3-D Secure支付。
可能的答案:InvalidRequestResponse、Cryptogram3dSecureAuthRequiredResponse、CryptogramTransactionRejectedResponse、CryptogramTransactionAcceptedResponse
令牌支付
TokenPaymentOneStepRequest - 用于一步支付;TokenPaymentTwoStepRequest - 用于两步支付。
可能的答案:InvalidRequestResponse、CryptogramTransactionRejectedResponse、CryptogramTransactionAcceptedResponse
取消支付
CancelPaymentRequest - 对于两步支付请求取消支付
可能的答案:InvalidRequestResponse、SuccessResponse
退款
RefundPaymentRequest - 对已付款项进行退款
可能的答案:InvalidRequestResponse、RefundPaymentResponse
创建周期性支付订阅
CreateSubscriptionRequest - 为将来进行的支付创建订阅
可能的答案:InvalidRequestResponse、SubscriptionResponse
请求订阅信息
获取订阅请求
可能的答案:InvalidRequestResponse、SubscriptionResponse
搜索订阅
查找订阅请求
可能的答案:InvalidRequestResponse,SubscriptionsResponse
更改订阅
更新订阅请求
可能的答案:InvalidRequestResponse、SubscriptionResponse
取消订阅
取消订阅请求
可能的答案:InvalidRequestResponse、SuccessResponse
无Laravel框架的使用示例
<?php use GuzzleHttp\Client as GuzzleHttpClient; use Korobovn\CloudPayments\Client\Client; use Korobovn\CloudPayments\Message\Request\CryptogramPaymentOneStepRequest; use Korobovn\CloudPayments\Message\Response\CryptogramTransactionAcceptedResponse; use Korobovn\CloudPayments\Message\Response\InvalidRequestResponse; $public_key = ''; $private_key = ''; $client = new Client( new GuzzleHttpClient(), $public_key, $private_key ); $request = CryptogramPaymentOneStepRequest::create(); $request ->getModel() ->setAmount(100.0) ->setCurrency('RUB') ->setIpAddress('127.0.0.1') ->setName('CARDHOLDER NAME') ->setCardCryptogramPacket('CARD_CRYPTOGRAM_PACKET'); $response = $request->setClient($client)->send(); if ($response instanceof CryptogramTransactionAcceptedResponse) { $transaction_id = $response->getModel()->getTransactionId(); } elseif ($response instanceof InvalidRequestResponse) { $error_message = $response->getMessage(); }
如何获取卡加密信息包?
测试
对于包测试,我们使用phpunit框架。只需在您的终端中输入
$ git clone https://github.com/korobovn/CloudPayments.git ./CloudPayments && cd $_ $ make build $ make composer-install $ make unit-tests
变更日志
变更日志可以在此处找到。
支持
如果您发现任何包错误,请在当前存储库中创建一个问题。
许可
这是一个开源软件,根据MIT许可证授权。