assist / assist_ru_php_core
Requires
- php: ~8.1.0
- guzzlehttp/guzzle: ^7.8
- paragonie/sodium_compat: ^2.0
- psr/log: ^2.0
Requires (Dev)
- mockery/mockery: ^1.6
- pestphp/pest: ^2.34
- pestphp/pest-plugin-faker: ^2.0
This package is not auto-updated.
Last update: 2024-09-25 09:25:51 UTC
README
PHP库,用于与支付集成商 Assist.ru 进行交互
内容
安装
$ composer require assist/assist_ru_php_core
使用
创建请求
准备客户端配置
$config = new \Assist\Config\Config([ //ID предприятия 'shop_id' => 999999, //Логин аккаунта предприятия 'login' => 'login', //Пароль аккаунта предприятия 'password' => 'password', ]);
创建客户端类实例并传递配置
$client = new \Assist\Client($config);
创建请求类实例并传递请求参数
$createPayment = new \Assist\Request\CreatePayment\CreatePaymentRequest([ 'OrderNumber' => 'number', 'OrderAmount' => 'amount', 'ChequeItems' => '', ]);
调用请求方法并将请求实例传递给它
$response = $client->createPayment($createPayment);
获取响应数据
所有响应类都有 getResponseData() 方法,该方法返回包含响应数据的数组
$responseData = $response->getResponseData();
数组结构符合 Assist API 响应 JSON 结构
https://docs.assist.ru/swagger/?urls.primaryName=payments.demo.paysecure.ru#
每个参数也有相应的获取器
$response = $client->createPayment($createPaymentRequest); $paymentUrl = $response->getUrl(); $orderState = $response->getOrderState(); $expirationTime = $response->getExpirationTime();
签名和校验值
用于生成签名 (Signature) 和校验值 (Checkvalue) 的助手类是 Assist\Helpers\SignHelper。
签名 (Signature)
在 Assist\Helpers\SignHelper 中提供了一个用于生成签名 (Signature) 的方法 getSignature(array $params, string $privateKey);
该方法接受两个参数:用于生成签名的参数数组 $params 和私钥字符串 $privateKey。
必选参数
- Merchant_ID
- OrderNumber
- OrderAmount
- OrderCurrency
可选参数
- OrderMaxPoints
- CustomerNumber
- Disable3DS
- Prepayment
$params 数组中的参数以键 => 值的格式传递。
校验值 (Checkvalue)
在 Assist\Helpers\SignHelper 中提供了一个用于生成校验值 (Checkvalue) 的方法 getCheckValue(array $params, string $salt);
该方法接受两个参数:用于生成签名的参数数组 $params 和密钥字符串 $salt。
必选参数
- Merchant_ID
- OrderNumber
- OrderAmount
- OrderCurrency
可选参数
- OrderMaxPoints
- CustomerNumber
- Disable3DS
- Prepayment
$params 数组中的参数以键 => 值的格式传递。
配置
客户端 SDK 的基本配置
Config 类的可用参数列表
请求配置
配置示例
$config = [ 'Merchant_ID' => 'string', 'OrderNumber' => 'string', 'OrderAmount' => 0, 'ChequeItems' => [ [ "id" => "string", "product" => "string", "name" => "string", "price" => 0, "amount" => 0, "quantity" => 0, "tax" => "string", "еancode" => "string", "uncode" => "string", "gs1code" => "string", "furcode" => "string", "egaiscode" => "string", "hscode" => "string", "subjtype" => 0 ] ] ]; $createPaymentRequest = new \Assist\Request\CreatePayment\CreatePaymentRequest($config);
普通支付 (Assist\Request\CreatePayment\CreatePaymentRequest)
配置符合请求参数 /pay/payrequest.cfm
确认支付 (Assist\Request\CreatePayment\ChargeRequest)
配置符合请求参数 /charge/charge.cfm
周期性支付 (Assist\Request\RecurrentPayment\RecurrentPaymentRequest)
配置符合请求参数 /recurrent/rp.cfm
取消支付 (Assist\Request\CreatePayment\CancelRequest)
配置符合请求参数 /cancel/wscancel.cfm
获取结果 (Assist\Request\OrderResult\OrderResultRequest)
配置符合请求参数 /orderresult/orderresult.cfm
"/orderresult/orderresult.cfm" 文档
获取订单状态 (Assist\Request\OrderState\OrderStateRequest)
配置符合请求参数 /orderstate/orderstate.cfm
"/orderstate/orderstate.cfm" 文档
处理包含错误的 http 响应
除 200 代码外的 HTTP 响应代码由 handlerError() 处理,该函数抛出相应的响应代码异常。
从 Assist\Exceptions\HttpException 继承的异常类有 getResponseHeaders() 和 getResponseBody() 方法。
测试
在项目中应用 pest 库进行 SDK 测试
启动测试
$ ./vendor/bin/pest