quickpay / quickpay-php-client
PHP-SDK,用于与支付提供商QuickPay进行通信
Requires
- php: >=8.0
- ext-curl: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2.1
- phpstan/phpstan: ^1.1.2
- phpunit/phpunit: ^9.5
- thecodingmachine/phpstan-strict-rules: ^1.0.0
This package is not auto-updated.
Last update: 2024-09-16 20:49:44 UTC
README
quickpay-php-client
是 QuickPay API 的官方客户端。QuickPay API 允许您以安全可靠的方式接受支付。该软件包目前支持 QuickPay v10
API。
安装
Composer
如果您使用 Composer 管理项目的依赖项,只需在项目的 composer.json 文件中添加对 quickpay/quickpay-php-client 的依赖即可。以下是一个 composer.json 文件的示例,仅定义了 QuickPay 最新稳定版本的依赖项:
{
"require": {
"quickpay/quickpay-php-client": "2.0.*"
}
}
手动上传
如果您无法使用 Composer 及其自动加载器提供的所有好处,您可以上传 /QuickPay/
到您的网页空间。但是,然后您需要自己管理类的自动加载。
使用
在执行任何操作之前,您应该在 QuickPay 上注册并获取访问凭证。如果您还没有,请点击此处申请。
创建一个新客户端
首先,您应该创建一个匿名客户端实例,或者使用 QuickPay 提供的 api_key
或登录凭证进行授权。
初始化匿名客户端
<?php
use QuickPay\QuickPay;
try {
$client = new QuickPay();
} catch (Exception $e) {
//...
}
?>
初始化具有 QuickPay API 密钥的客户端
<?php
use QuickPay\QuickPay;
try {
$api_key = 'xxx';
$client = new QuickPay(":{$api_key}");
} catch (Exception $e) {
//...
}
?>
或者,您可以提供登录凭证
<?php
use QuickPay\QuickPay;
try {
$qp_username = 'xxx';
$qp_password = 'xxx';
$client = new QuickPay("{$qp_username}:{$qp_password}");
} catch (Exception $e) {
//...
}
?>
API 调用
您可以使用对应的 HTTP 方法端点调用 QuickPay API 中描述的任何方法。目前支持的方法有:get
、post
、put
、patch
和 delete
。
// Get all payments
$payments = $client->request->get('/payments');
// Get specific payment
$payments = $client->request->get('/payments/{id}');
// Create payment
$form = array(
'order_id' => $order_id,
'currency' => $currency,
...
);
$payments = $client->request->post('/payments', $form);
$status = $payments->httpStatus();
if ($status == 201) {
// Successful created
}
处理响应
获取 HTTP 状态码
$response = $client->request->get('/payments');
$status = $response->httpStatus();
if ($status == 200) {
// Successful request
}
返回的响应对象支持三种不同的返回响应体方式:asRaw()
、asObject
、asArray()
。
// Get the HTTP status code, headers and raw response body.
list($status_code, $headers, $response_body) = $client->request->get('/payments')->asRaw();
// Get the response body as an object
$response_body = $client->request->get('/payments')->asObject();
// Get the response body as an array
$response_body = $client->request->get('/payments')->asArray();
// Example usage
$payments = $client->request->get('/payments')->asArray();
foreach($payments as $payment) {
//...
}
设置超时
设置超时并在超时时接收通知
QuickPayAPI::$timeout = 30;
QuickPayAPI::$onTimeout ??= function () {
event(new PaymentGatewayTimeout($this));
throw new TimeoutException("No response from Quickpay within " . QuickPayAPI::$timeout . " seconds");
};
您可以在 http://learn.quickpay.net/tech-talk/api/ 上阅读有关 API 响应的更多信息。
测试
使用 Composer 创建自动加载器
$ composer install $ phpunit