jetfueltw/zsagepay-php

zsagepay 支付网关 PHP 包

v1.1.1 2018-06-11 08:18 UTC

This package is auto-updated.

Last update: 2024-09-29 04:43:02 UTC


README

澤聖聚合支付 PHP 版本封装。

安装

使用 Composer 安装。

composer require jetfueltw/zsagepay-php

使用方法

扫码支付下单

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

$merchantId = '1XXXXXXX1'; // 商家號
$secretKey = 'XXXXXXXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$channel = Channel::WECHAT; // 支付通道,支援微信支付、QQ錢包、支付寶
$amount = 1.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' => '00',
    'data' => [
        'merchantCode' => '1XXXXXXX1', // 商家號
        'orderId' => '2XXXXXXXXXXXXXXXXX7', // 聚合支付平台訂單號
        'outOrderId' => '20170101235959XXX', // 商家產生的唯一訂單號
        'sign' => '946XXXXXXXXXXXXXXXXXXXXXXXXXX008', // 簽名
        'url' => 'weixin://wxpay/bizpayurl?pr=XXXXXXX', // 支付網址
    ],
    'msg' => '成功',
]

扫码支付交易成功通知

消费者支付成功后,平台会发出 HTTP POST 请求到你下单时填的 $notifyUrl,商家在收到通知并处理后必须回复 {"code":"00"},否则平台会认为通知失败,并重发多次通知。

  • 商家必须正确处理重复通知的情况。
  • 可以使用 NotifyWebhook@successNotifyResponse 返回成功回复。
  • 务必使用 NotifyWebhook@verifyNotifyPayload 验证签名是否正确。
  • 通知的消费金额单位为 ,使用 NotifyWebhook@parseNotifyPayload 能验证签名并把消费金额单位转为
Post Data:
[
    'merchantCode' => '1XXXXXXX1', // 商家號
    'instructCode' => '1XXXXXXXXXXXXXXXX8', // 聚合支付平台訂單號
    'transType' => '00200', // 交易類型
    'outOrderId' => '20170101235959XXX', // 商家產生的唯一訂單號
    'transTime' => '20150211155604', // 交易時間
    'totalAmount' => 100, // 消費金額 (分)
    'sign' => '69C0A709C58C7E7BFA5CF5B7F8D690C0', // 簽名
]

扫码支付订单查询

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

$merchantId = '1XXXXXXX1'; // 商家號
$secretKey = 'XXXXXXXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$tradeQuery = new TradeQuery($merchantId, $secretKey);
$result = $tradeQuery->find($tradeNo);
Result:
[
    'code' => '00',
    'data' => [
        'amount' => 1.00, // 消費金額 (元)
        'instructCode' => '1XXXXXXXXXXXXXXXX8', // 聚合支付平台訂單號
        'merchantCode' => '1XXXXXXX1', // 商家號
        'outOrderId' => '20170101235959XXX', // 商家產生的唯一訂單號
        'replyCode' => '00', // 狀態碼
        'sign' => '946XXXXXXXXXXXXXXXXXXXXXXXXXX008', // 簽名
        'transTime' => '20150211155604', // 交易時間
        'transType' => '00200', // 交易類型
    ],
    'msg' => '成功',
]

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

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

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

网银支付下单

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

$merchantId = '1XXXXXXX1'; // 商家號
$secretKey = 'XXXXXXXXXXXXXXX'; // md5 密鑰
$tradeNo = '20170101235959XXX'; // 商家產生的唯一訂單號
$bank = Bank::CCB; // 銀行編號
$amount = 1.00; // 消費金額 (元)
$notifyUrl = 'https://XXX.XXX.XXX'; // 交易完成後異步通知接口
$returnUrl = 'https://XXX.XXX.XXX'; // 交易完成後會跳轉到這個頁面
$payment = new BankPayment($merchantId, $secretKey);
$result = $payment->order($tradeNo, $bank, $amount, $notifyUrl, $returnUrl);
Result:
跳轉用的 HTML,請 render 到客戶端

网银支付交易成功通知

同扫码支付交易成功通知

网银支付订单查询

同扫码支付订单查询

网银支付订单支付成功查询

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