jetfueltw/gpp365-php

gpp365 支付网关 PHP 包

v1.2.1 2017-11-23 10:41 UTC

This package is auto-updated.

Last update: 2024-09-29 05:07:52 UTC


README

gpp365 聚合支付 PHP 版本封装。

安装

使用 Composer 安装。

composer require jetfueltw/gpp365-php

使用方法

扫码支付下单

使用微信支付、QQ钱包、支付宝扫码支付,下单后返回支付网址,请自行转换为 QR Code。

$merchantId = '123XXXXXXXX86'; // 商家號
$secretKey = 'XXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$channel = Channel::WECHAT; // 支付通道,支援微信支付、QQ錢包、支付寶
$amount = 100.00; // 消費金額 (元)
$clientIp = 'XXX.XXX.XXX.XXX'; // 消費者端 IP 位址
$notifyUrl = 'https://XXX.XXX.XXX'; // 交易完成後異步通知接口
$payment = new DigitalPayment($merchantId, $secretKey);
$result = $payment->order($tradeNo, $channel, $amount, $clientIp, $notifyUrl);
Result:
[
    'code' => '0000'
    'message' => '操作成功'
    'data' => [
        'merchant' => '123XXXXXXXX86' // 商家號
        'tradeNo' => '20170101235959XXX' // 商家產生的唯一訂單號
        'ordernumber' => '123XXXXXXXXXXXXXX890' // 聚合支付平台訂單號
        'payType' => '1' // 交易類型 1.WECHAT、2.ALIPAY、4.QQ
        'qrcode' => 'weixin://wxpay/bizpayurl?pr=XXXXXXX' // 支付網址
        'amount' => '100.00' // 消費金額 (元)
        'curType' => 'CNY' // 交易幣別
        'sign' => '946XXXXXXXXXXXXXXXXXXXXXXXXXX008' // 簽名
    ]
]

扫码支付交易成功通知

消费者支付成功后,平台会发出 HTTP POST 请求到你下单时填的 $notifyUrl。

  • 商家必须正确处理重复通知的情况。
  • 务必使用 NotifyWebhook@verifyNotifyPayload 验证签名是否正确。
Post Data:
[
    'code' => '0000'
    'message' => '操作成功'
    'data' => [
        'merchant' => '123XXXXXXXX86' // 商家號
        'tradeNo' => '20170101235959XXX' // 商家產生的唯一訂單號
        'ordernumber' => '123XXXXXXXXXXXXXX890' // 聚合支付平台訂單號
        'payType' => '1' // 交易類型 1.WECHAT、2.ALIPAY、4.QQ
        'amount' => '100.00' // 消費金額 (分)
        'curType' => 'CNY' // 交易幣別
        'status' => '1' // 訂單狀態 0.處理中、1.交易成功、2.交易失敗
        'tradeTime' => '2017-08-01 09:00:00' // 交易時間
        'sign' => '946XXXXXXXXXXXXXXXXXXXXXXXXXX008' // 簽名
    ]
]

扫码支付订单查询

使用商家订单号查询一笔订单状态。

$merchantId = '123XXXXXXXX86'; // 商家號
$secretKey = 'XXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$channel = Channel::WECHAT; // 第三方支付,支援微信支付、QQ錢包、支付寶
$tradeQuery = new TradeQuery($merchantId, $secretKey);
$result = $tradeQuery->find($tradeNo, $channel);
Result:
[
    'code' => '0000'
    'message' => '操作成功'
    'data' => [
        'merchant' => '123XXXXXXXX86' // 商家號
        'tradeNo' => '20170101235959XXX' // 商家產生的唯一訂單號
        'ordernumber' => '123XXXXXXXXXXXXXX890' // 聚合支付平台訂單號
        'payType' => '1' // 交易類型 1.WECHAT、2.ALIPAY、4.QQ
        'amount' => '100.00' // 消費金額 (元)
        'curType' => 'CNY' // 交易幣別
        'status' => '1' // 訂單狀態 0.處理中、1.交易成功、2.交易失敗
        'tradeTime' => '2017-08-01 09:00:00' // 交易時間
        'sign' => '946XXXXXXXXXXXXXXXXXXXXXXXXXX008' // 簽名
    ]
]

扫码支付订单支付成功查询

使用商家订单号查询一笔订单是否支付成功。

$merchantId = '1XXXXXXX1'; // 商家號
$secretKey = 'XXXXXXXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$tradeQuery = new TradeQuery($merchantId, $secretKey);
$result = $tradeQuery->isPaid($tradeNo);
Result:
bool(true|false)

网银支付下单

使用网银支付,下单后返回跳转页面,请 render 到客户端。

$merchantId = '123XXXXXXXX86'; // 商家號
$secretKey = 'XXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$bank = Bank::ABOC; // 銀行編號
$amount = 100.00; // 消費金額 (元)
$clientIp = 'XXX.XXX.XXX.XXX'; // 消費者端 IP 位址
$notifyUrl = 'https://XXX.XXX.XXX'; // 交易完成後異步通知接口
$payment = new BankPayment($merchantId, $secretKey);
$result = $payment->order($tradeNo, $bank, $amount, $clientIp, $notifyUrl);
Result:
跳轉用的 HTML,請 render 到客戶端

网银支付交易成功通知

消费者支付成功后,平台会发出 HTTP POST 请求到你下单时填的 $notifyUrl。

  • 商家必须正确处理重复通知的情况。
  • 务必使用 NotifyWebhook@verifyNotifyPayload 验证签名是否正确。
Post Data:
[
    'code' => '0000'
    'message' => '操作成功'
    'data' => [
        'merchant' => '123XXXXXXXX86' // 商家號
        'tradeNo' => '20170101235959XXX' // 商家產生的唯一訂單號
        'ordernumber' => '123XXXXXXXXXXXXXX890' // 聚合支付平台訂單號
        'payType' => '3' // 交易類型,固定值 3
        'amount' => '100.00' // 消費金額 (分)
        'curType' => 'CNY' // 交易幣別
        'status' => '1' // 訂單狀態 0.處理中、1.交易成功、2.交易失敗
        'tradeTime' => '2017-08-01 09:00:00' // 交易時間
        'sign' => '946XXXXXXXXXXXXXXXXXXXXXXXXXX008' // 簽名
    ]
]

网银支付订单查询

使用商家订单号查询一笔订单状态。

$merchantId = '123XXXXXXXX86'; // 商家號
$secretKey = 'XXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$tradeQuery = new TradeQuery($merchantId, $secretKey);
$result = $tradeQuery->find($tradeNo);
Result:
[
    'code' => '0000'
    'message' => '操作成功'
    'data' => [
        'merchant' => '123XXXXXXXX86' // 商家號
        'tradeNo' => '20170101235959XXX' // 商家產生的唯一訂單號
        'ordernumber' => '123XXXXXXXXXXXXXX890' // 聚合支付平台訂單號
        'payType' => '3' // 交易類型,固定值 3
        'amount' => '100.00' // 消費金額 (元)
        'curType' => 'CNY' // 交易幣別
        'status' => '1' // 訂單狀態 0.處理中、1.交易成功、2.交易失敗
        'tradeTime' => '2017-08-01 09:00:00' // 交易時間
        'sign' => '946XXXXXXXXXXXXXXXXXXXXXXXXXX008' // 簽名
    ]
]

扫码支付订单支付成功查询

使用商家订单号查询一笔订单是否支付成功。

$merchantId = '1XXXXXXX1'; // 商家號
$secretKey = 'XXXXXXXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$tradeQuery = new TradeQuery($merchantId, $secretKey);
$result = $tradeQuery->isPaid($tradeNo);
Result:
bool(true|false)