korobovn/cloud-payments

Cloud Payments PHP客户端

1.0.2 2019-11-20 12:47 UTC

This package is auto-updated.

Last update: 2024-09-29 05:35:41 UTC


README

Cloud Payments PHP客户端

Version Version Build Status Coverage Code quality Downloads count License

该包用于方便使用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);

其中$requestRequestInterface的实例。

您还可以在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必须是以下类之一的实例:InvalidRequestResponseCryptogram3dSecureAuthRequiredResponseCryptogramTransactionRejectedResponseCryptogramTransactionAcceptedResponse

$responseResponseInterface的实例)也有其自己的数据模型。使用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处理

3-D Secure处理文档在此.

CompletionOf3dSecureRequest - 用于完成3-D Secure支付。

可能的答案:InvalidRequestResponseCryptogram3dSecureAuthRequiredResponseCryptogramTransactionRejectedResponseCryptogramTransactionAcceptedResponse

令牌支付

令牌支付文档在此.

TokenPaymentOneStepRequest - 用于一步支付;TokenPaymentTwoStepRequest - 用于两步支付。

可能的答案:InvalidRequestResponseCryptogramTransactionRejectedResponseCryptogramTransactionAcceptedResponse

取消支付

取消支付文档在此.

CancelPaymentRequest - 对于两步支付请求取消支付

可能的答案:InvalidRequestResponseSuccessResponse

退款

退款文档在此.

RefundPaymentRequest - 对已付款项进行退款

可能的答案:InvalidRequestResponseRefundPaymentResponse

创建周期性支付订阅

创建周期性支付订阅文档在此.

CreateSubscriptionRequest - 为将来进行的支付创建订阅

可能的答案:InvalidRequestResponseSubscriptionResponse

请求订阅信息

在此处请求订阅信息文档.

获取订阅请求

可能的答案:InvalidRequestResponseSubscriptionResponse

搜索订阅

在此处搜索订阅文档.

查找订阅请求

可能的答案:InvalidRequestResponseSubscriptionsResponse

更改订阅

在此处更改订阅文档.

更新订阅请求

可能的答案:InvalidRequestResponseSubscriptionResponse

取消订阅

在此处取消订阅文档.

取消订阅请求

可能的答案:InvalidRequestResponseSuccessResponse

无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

变更日志

Release date Commits since latest release

变更日志可以在此处找到

支持

Issues Issues

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

许可

这是一个开源软件,根据MIT许可证授权。