durianpay / dpay-php
用 PHP 编写的 SDK,包装了 Durianpay 的 API 集合
Requires
- php: >=7.2
- guzzlehttp/guzzle: >=6.0
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-27 05:35:22 UTC
README
API 参考
有关 Durianpay API 的完整文档,请访问 我们的文档。
入门
如果您已经在项目中设置了 composer
,则可以输入以下命令
composer require durianpay/dpay-php
初始化 SDK
通过将仪表板 API 密钥 传递给 Durianpay 类来设置 SDK。
use Durianpay\Durianpay; Durianpay::setApiKey('<YOUR_API_KEY>');
要查找您的 API 密钥,请转到仪表板 设置 并点击 API 密钥。
功能和资源
订单
有关订单 API 的详细信息,请访问我们的 文档。
1. 创建订单
$res = \Durianpay\Resources\Order::create($body);
将订单详细信息传递给函数。
示例调用
$res = \Durianpay\Resources\Order::create( [ 'amount' => '10000', 'payment_option' => 'full_payment', 'currency' => 'IDR', 'order_ref_id' => 'order_ref_001', 'customer' => [ 'customer_ref_id' => 'cust_001', 'given_name' => 'Jane Doe', 'email' => 'jane_doe@nomail.com', 'mobile' => '85722173217', ], 'items' => [ [ 'name' => 'LED Television', 'qty' => 1, 'price' => '10000', 'logo' => 'https://merchant.com/product_001/tv_image.jpg', ], ] ] ); var_dump($res);
2. 获取订单
$res = \Durianpay\Resources\Order::fetch($queryParams);
注意:传递 $queryParams
是可选的。如果 $queryParams
中未指定 limit
属性,则 SDK 会立即将返回的订单数量限制为最新的 五个。
示例调用
$res = \Durianpay\Resources\Order::fetch( [ 'from' => '2021-01-01', 'to' => '2022-12-31', 'skip' => '0', 'limit' => '8' ] ); var_dump($res);
3. 获取单个订单
$res = \Durianpay\Resources\Order::fetchOne($id);
将 订单 ID 作为参数传递给函数。
示例调用
$res = \Durianpay\Resources\Order::fetchOne('ord_JYF9EqFOiJ8812'); var_dump($res);
4. 创建支付链接
$res = \Durianpay\Resources\Order::createPaymentLink($body);
将订单详细信息传递给函数。此函数将自动将属性 'is_payment_link' => true
添加到请求体中。
示例调用
$res = \Durianpay\Resources\Order::createPaymentLink( [ 'amount' => '10000', 'currency' => 'IDR', 'customer' => [ 'given_name' => 'John Doe', 'email' => 'john_doe@nomail.com', 'mobile' => '01234567890', 'given_name' => 'John Doe' ], 'items' => [[ 'name' => 'LED Television', 'qty' => 1, 'price' => '10000', 'logo' => 'https://merchant.com/product_001/tv_image.jpg' ]] ] ); var_dump($res);
支付
有关支付 API 的详细信息,请访问我们的 文档。
1. 创建支付订单
$res = \Durianpay\Resources\Payment::charge($type, $request);
将订单详细信息传递给函数。
示例调用
$type = 'EWALLET'; // EWALLET, VA, RETAILSTORE, ONLINE_BANKING, BNPL, or QRIS $res = \Durianpay\Resources\Payment::charge($type, [ 'order_id' => 'ord_xrc0BvcVIF1680', 'wallet_type' => 'DANA', 'mobile' => '01234567890', 'amount' => '15000' ]); var_dump($res);
2. 获取支付
$res = \Durianpay\Resources\Payment::fetch($queryParams);
注意:传递 $queryParams
是可选的。如果 $queryParams
中未指定 limit
属性,则 SDK 会立即将返回的支付数量限制为最新的 五个。
示例调用
$res = \Durianpay\Resources\Payment::fetch(); var_dump($res);
3. 获取单个支付
$res = \Durianpay\Resources\Payment::fetchOne($id);
将 支付 ID 作为参数传递给函数。
示例调用
$res = \Durianpay\Resources\Order::fetchOne('pay_7UnK1zvIjB5787'); var_dump($res);
4. 检查支付状态
$res = \Durianpay\Resources\Payment::checkStatus($id);
函数将返回支付当前状态(完成、处理中、已取消或失败)。
示例调用
$res = \Durianpay\Resources\Order::checkStatus('pay_7UnK1zvIjB5787'); var_dump($res);
5. 验证支付
$res = \Durianpay\Resources\Payment::verify($id, $verificationSignature);
示例调用
$signature = 'adf9a1a37af514c91225f6680e2df723fefebb7638519bcc7e7c9de02f2a3ab2'; $res = \Durianpay\Resources\Order::checkStatus('pay_7UnK1zvIjB5787', $signature); var_dump($res);
6. 取消支付
$res = \Durianpay\Resources\Payment::cancel($id);
将立即将支付状态设置为 已取消。
示例调用
$res = \Durianpay\Resources\Order::cancel('pay_7UnK1zvIjB5787'); var_dump($res);
7. 计算费用
$res = \Durianpay\Resources\Payment::calculateMDRFees($queryParams);
示例调用
$res = \Durianpay\Resources\Order::calculateMDRFees(['amount' => '50000']); var_dump($res);
其他 Durianpay 资源
我们正在不断扩展此文档,请保持关注以获取更多功能。同时,您可以先在 https://durianpay.id/docs 上探索我们的文档。
错误处理
我们的 SDK 附带各种异常处理器。在调用函数时,建议始终在 try-catch
块中包装它。
use Durianpay\Exceptions\BadRequestException; try { // Some Durianpay functions } catch(BadRequestException $error) { $errorDesc = $error->getDetailedErrorDesc(); echo $error; var_dump($errorDesc); }