jetfueltw/

syfpay-php

syfpay支付网关PHP包

v1.0.7 2018-04-02 08:22 UTC

This package is auto-updated.

Last update: 2024-09-29 05:41:56 UTC


README

闪亿付聚合支付 PHP 版本封装。

安装

使用 Composer 安装。

composer require jetfueltw/syfpay-php

使用方法

扫码支付下单

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

$merchantId = 'XXXXXXXXXXXXXXX'; // 商家號
$secretKey = 'XXXXXXXXXXXXXXX'; // md5 密鑰
$merchantPrivateKey = '-----BEGIN RSA PRIVATE KEY-----XXXXXXXXXX-----BEGIN RSA PRIVATE KEY-----' //RSA密鑰
$merchantPayPublicKey = '-----BEGIN PUBLIC KEY-----XXXXXXXXXX-----BEGIN PUBLIC KEY-----' //RSA公鑰
$tradeNo = '20180109023351XXXXX'; // 商家產生的唯一訂單號
$channel = Channel::WECHAT; // 支付通道,支援微信支付、QQ錢包、支付寶
$amount = 1.00; // 消費金額 (元)
$clientIp = 'XXX.XXX.XXX.XXX'; // 消費者端 IP 位址
$notifyUrl = 'https://XXX.XXX.XXX'; // 交易完成後異步通知接口
$returnUrl = 'https://XXX.XXX.XXX'; // 交易完成後會跳轉到這個頁面
$payment = new DigitalPayment(merchantId, secretKey, merchantPrivateKey, merchantPayPublicKey);
$result = $payment->order($tradeNo, $channel, $amount, $clientIp, $notifyUrl, $returnUrl);
Result:
[
    'merNo' => 'XXXXXXXXXXXXXXX', // 商家號
    'stateCode' => 'XX', // 00表示成功
    'msg' => 'XXXX'; // 狀態描述
    'orderNum' =>'20180109023351XXXXX', // 商家產生的唯一訂單號
    'qrcodeUrl' =>'https://qr.alipay.com/upx07533duhp4xmuuXXXXXXX', // 支付網址
    'sign' => '1C1E6B6DCD8DC9F70565AFXXXXXXXXXX', // 簽名(字母大寫)
];

扫码支付交易成功通知

消费者支付成功后,平台会发出 HTTP POST 请求到你下单时填的 $notifyUrl,商家在收到通知并处理完后必须回复 0,否则平台会认为通知失败,并间隔5分钟再次推送,推送5次。

  • 商家必须正确处理重复通知的情况。
  • 可以使用 NotifyWebhook@successNotifyResponse 返回成功回复。
  • 务必使用 NotifyWebhook@verifyNotifyPayload 验证签名是否正确。
  • 通知的消费金额单位为 ,使用 NotifyWebhook@parseNotifyPayload 能验证签名并把消费金额单位转为
Post Data:
[
    'merNo' => 'XXXXXXXXXXXXXXX', // 商家號
    'netway' => 'XXXXX', // 支付寶'ZFB',微信'WX',QQ錢包'QQ')
    'orderNum' => '20180109023351XXXXX', // 商家產生的唯一訂單號
    'amount'   => 100, //消費金額 (分)
    'goodsName' => 'XXXXXX', //商品名稱
    'payResult' => 'XX', // 支付狀態,00表示成功
    'payDate' => , // 支付時間,格式:yyyyMMddHHmmss
    'sign' => '1C1E6B6DCD8DC9F70565AFXXXXXXXXXX', // 簽名(字母大寫)
]

扫码支付订单查询

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

$merchantId = 'XXXXXXXXXXXXXXX'; // 商家號
$secretKey = 'XXXXXXXXXXXXXXX'; // md5 密鑰
$merchantPrivateKey = '-----BEGIN RSA PRIVATE KEY-----XXXXXXXXXX-----BEGIN RSA PRIVATE KEY-----' //RSA密鑰
$merchantPayPublicKey = '-----BEGIN PUBLIC KEY-----XXXXXXXXXX-----BEGIN PUBLIC KEY-----' //RSA公鑰

$tradeNo = '20180109023351XXXXX'; // 商家產生的唯一訂單號
$channel = Channel::WECHAT; // 支付通道,支援微信支付、QQ錢包、支付寶
$amount = 1.00; // 消費金額 (元)
$payDate = //支付時間,格式:yyyyMMddHHmmss
$tradeQuery = new TradeQuery($merchantId, $secretKey, merchantPrivateKey, merchantPayPublicKey);
$result = $tradeQuery->find($tradeNo, $channel, $amount, $payDate);
Result:
[
    'merNo' => 'XXXXXXXXXXXXXXX', // 商家號
    'msg' => 'XXXX'; // 狀態描述
    'stateCode' => 'XX', // 00表示成功
    'orderNum' =>'20180109023351XXXXX', // 商家產生的唯一訂單號
    'payStateCode' => 'XX', // 支付狀態 00:支付成功 01:支付失敗 03:簽名錯誤 04:其他錯誤 05:未知 06:初始 50:網絡異常 99:未支付
    'sign' => '1C1E6B6DCD8DC9F70565AFXXXXXXXXXX', // 簽名(字母大寫)
]

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

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

$merchantId = 'XXXXXXXXXXXXXXX'; // 商家號
$secretKey = 'XXXXXXXXXXXXXXX'; // md5 密鑰
$merchantPrivateKey = '-----BEGIN RSA PRIVATE KEY-----XXXXXXXXXX-----BEGIN RSA PRIVATE KEY-----' //RSA密鑰
$merchantPayPublicKey = '-----BEGIN PUBLIC KEY-----XXXXXXXXXX-----BEGIN PUBLIC KEY-----' //RSA公鑰

$tradeNo = '20180109023351XXXXX'; // 商家產生的唯一訂單號
$tradeQuery = new TradeQuery($merchantId, $secretKey, merchantPrivateKey, merchantPayPublicKey);
$result = $tradeQuery->isPaid($tradeNo, $channel, $amount, $payDate);
Result:
bool(true|false)