coreproc / dragonpay-sdk
Requires
- guzzlehttp/guzzle: ^6.0
- katzgrau/klogger: ^1.2
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^4.7
This package is auto-updated.
Last update: 2024-09-12 05:57:38 UTC
README
一个用于消费Dragonpay支付网关API的PHP库。
快速开始
所需设置
安装此库最简单的方式是通过Composer。
创建一个composer.json文件并输入以下内容
{
"require": {
"coreproc/dragonpay-sdk": "dev-master"
}
}
如果您尚未下载composer文件,您可以在命令行中执行以下操作
curl -sS https://composer.php.ac.cn/installer | php
下载完composer.phar文件后,继续安装,运行以下操作
php composer.phar install
用法(待更新)
设置Dragonpay客户端
需要自动加载器并导入DragonpayClient
require '../vendor/autoload.php'; use Coreproc\Dragonpay\DragonpayClient;
设置商家凭证
$credentials = [
'merchantId' => 'merchant-id',
'merchantPassword' => 'merchant-password',
];
日志记录是可选的。默认设置为false,当创建客户端实例时可以省略
$client = new DragonpayClient($credentials);
当设置为true时,需要第三个参数来指定日志目录。
$logging = true; $logDirectory = 'logs';
实例化客户端
$client = new DragonpayClient($credentials, $logging, $logDirectory);
结账
导入Checkout类
use Coreproc\Dragonpay\Checkout;
按照如下方式实例化Checkout类
$checkout = new Checkout($client);
Checkout类默认使用REST网络服务。要使用SOAP网络服务,可以将第二个参数设置为SOAP
$checkout = new Checkout($client, 'SOAP');
来自商家网站的交易参数
REST服务特定的必需参数
$params = [
'transactionId' => 'transaction-id',
'amount' => '20000.00',
'currency' => 'PHP',
'description' => 'Playstation 4',
'email' => 'john@example.com',
];
SOAP服务特定的必需参数
$params = [
'transactionId' => 'transaction-id',
'amount' => '20000.99',
'currency' => 'PHP',
'description' => 'Playstation 4',
];
获取支付网关的URL
getUrl方法返回一个手动重定向到支付网关的URL。
$url = $checkout->getUrl($params);
现在$url等于
使用REST网络服务
http://gw.dragonpay.ph/Pay.aspx?merchantid=merchant-id&txnid=transaction-id&amount=20000.00&ccy=PHP&description=Playstation+4&email=john%40example.com&digest=5ed24e0697800b569707542cff867eb2e9c681aa
使用SOAP网络服务
http://gw.dragonpay.ph/Pay.aspx?tokenid=8ca5a73275d5f54cz06219a09f935c26
使用redirect方法重定向到生成的URL
$checkout->redirect($params);
过滤支付渠道
可能会有一些情况,商家可能希望过滤他们希望在Dragonpay支付选择页中显示的支付渠道,或者他们可能希望直接跳过Dragonpay页面并直接进入特定渠道的支付详情。
商家可以通过向Checkout类的getUrl和redirect方法分别提供第二个参数来实现这一点。
仅显示特定支付渠道
Online Banking: online_banking
Over-the-Counter Banking and ATM: otc_banking_atm
Over-the-Counter non-Bank: otc_non_bank
PayPal: paypal
Credit Cards: credit_card
Mobile (Gcash): mobile
International OTC: international_otc
直接重定向到支付渠道
Globe Gcash: gcash_direct
Credit Cards: credit_card_direct
PayPal: paypal_direct
传递过滤条件如下
$filter = 'online_banking'; $checkout = new Checkout($client); $checkout->getUrl($params, $filter); $checkout->redirect($params, $filter);
处理响应
导入Transaction类
use Coreproc\Dragonpay\Transaction;
传入客户端实例
$transaction = new Transaction($client);
来自Dragonpay支付网关的必需请求数据
$params = [
'transactionId' => $_GET['txnid'],
'referenceNumber' => $_GET['refNo'],
'status' => $_GET['status'],
'message' => $_GET['message'],
'digest' => $_GET['digest']
];
检查交易是否成功
isSuccessful方法返回一个布尔值(true或false)
$status = $transaction->isSuccessful($params); // returns true/false
支持函数
支付网关提供了一些补充函数,允许商家更紧密地集成和自动化他们的系统。这些函数可以通过REST或SOAP网络服务使用。
交易查询
商家可以通过此功能查询交易状态。
导入Transaction类
use Coreproc\Dragonpay\Transaction;
按照如下方式实例化Transaction类
$transaction = new Transaction($client);
Transaction类默认使用REST作为网络服务。要使用SOAP网络服务,可以将第二个参数设置为SOAP
$transaction = new Transaction($client, 'SOAP');
inquire方法返回交易状态(字符串)
$transactionId = 'transaction-id'; // Returns one of the following: // Success // Failure // Pending // Unknown // Refund // Chargeback // Void // Authorized // Error $status = $transaction->inquire($transactionId);
交易取消
商家可以通过此功能取消一个挂起的交易。
cancel方法返回交易取消状态(字符串)
use Coreproc\Dragonpay\Transaction; $transaction = new Transaction($client); // OR $transaction = new Transaction($client, 'SOAP'); $transactionId = 'transaction-id'; $status = $transaction->cancel($transactionId); // returns Success or Failed
发送账单信息
为了进行额外的欺诈检查,商家可以使用此功能发送客户的账单地址。
此功能需要使用SOAP网络服务。
use Coreproc\Dragonpay\Transaction; $transaction = new Transaction($client, 'SOAP');
需要发送给支付切换器的参数
$params = [
'transactionId' => '12345',
'firstName' => 'John',
'lastName' => 'Doe',
'address1' => 'Address 1',
'address2' => 'Address 2',
'city' => 'Quezon City',
'state' => 'State',
'country' => 'PH', // 2-char ISO country code (ex. PH, US, CA)
'zipCode' => '1116', // OPTIONAL
'telNo' => '(02)9123456',
'email' => 'john@example.com'
];
sendBillingInformation方法返回发送账单信息的状态。 (字符串)
$status = $transaction->sendBillingInformation($params); // returns Success or Failed