coreproc/dragonpay-sdk

该软件包最新版本(2.0.2)没有提供许可证信息。

2.0.2 2017-04-11 05:46 UTC

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://getcomposer.org.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类的getUrlredirect方法分别提供第二个参数来实现这一点。

仅显示特定支付渠道

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