yuxiaobo / ant-cloudpay-sdk
支付宝|蚂蚁云支付SDK
1.0.1
2024-01-17 02:50 UTC
Requires
- php: ^7.2.5 || ^8.0
- guzzlehttp/guzzle: ^7
Requires (Dev)
- phpunit/phpunit: >=9.6
This package is auto-updated.
Last update: 2024-11-17 08:53:21 UTC
README
开发开源原因:
因对接支付宝 IoT 需要,但是蚂蚁云支付官方暂时没有 php 的 sdk,于是决定开发了这个包。开源出来是为了帮助更多的 phper 小伙伴省略去包装 api 的过程,快速出活。
文档
示例
条码支付
$config = new Config(); $config->setBAppId('云支付应用ID'); $config->setGateway('云支付网关'); $config->setRsaPrivateKey('私钥'); $config->setAliPublicKey('支付宝公钥'); $config->setCpMid('云支付商户id'); $req = new Client($config); $resp = $req->execute('ant.antfin.eco.cloudpay.trade.pay', array( 'out_order_no' => '545454345', // 订单编号 'scene' => 'bar_code', // 条形码 'total_amount' => '0.01', // 金额: 元 'auth_code' => '28763443825664394', // 支付授权码:如果是扫码就是支付宝或者微信付款码对应的那串数字 'subject' => 'Iphone6 16G', // 订单标题 'body' => 'Iphone6 16G', // 对交易或商品的描述 [非必填] 'notify_url' => '2145', // 回调地址 'cp_store_id' => '20200901145300003099286200000650' // 云支付商户门店编号 ));
退款
$config = new Config(); $config->setBAppId('云支付应用ID'); $config->setGateway('云支付网关'); $config->setRsaPrivateKey('私钥'); $config->setAliPublicKey('支付宝公钥'); $config->setCpMid('云支付商户id'); $req = new Client($config); $resp = $req->execute('ant.antfin.eco.cloudpay.trade.refund', array( 'out_order_no' => '1651715489', // 商户订单号,和第三方支付号不能同时为空 // 'trans_no' => '12131', // 第三方支付号,和商户订单号不能同时为空 'refund_amount' => '0.01', // 退款金额 'out_request_no' => '131324', // 外部退款单号,标识一次退款请求 'notify_url' => '2145', // 'pay_channel' => 'alipay', // 第三方支付类型,如果选择trans_no,则不能为空 [alipay, wechat] // 云支付商户门店编号 ));
Notify 通知回调处理
注意内容
- 支付回调是
POST
请求, 携带如下JSON
数据的 body - 商户收到回调通知,进行对应业务处理后,须要返回处理结果。处理成功返回“success”字符串,处理失败可返回失败原因。
- 若商户返回失败(即不是“success”),云支付会按照一定的时间间隔,进行重试通知,重试结束后不再通知。重试时间规则,单位秒:15,30,60,300,600,1800,15,30,3600,15,30,7200,14400,28800,57600
示例数据 (退款)
{ "store_id": "20200901145300003099286200000650", "wechat_refund_order_content_ext": "{}", "notify_time": "1651719765776", "refund_status": "REFUND_SUCCESS", "trade_channel": "wechat", "gmt_refund": "1651719761000", "out_order_no": "1651719435", "notify_combination_channel_refund_infos": "[]", "notify_id": "20220505110200004600083200072234", "notify_type": "REFUND_SYNC", "total_amount": "0.01", "refund_amount": "0.01", "trade_no": "4200001421202205052017454108", "out_request_no": "131324", "refund_order_no": "20220505110200004600036200072231" }
示例数据 (条码支付)
{ "order_no": "20220505105700004600036200072197", "store_id": "20200901145300003099286200000650", "gmt_payment": "1651719445000", "notify_time": "1651719445743", "trade_channel": "wechat", "subject": "Iphone6 16G", "wechat_order_content_ext": "{}", "out_order_no": "1651719435", "notify_combination_channel_pay_infos": "[]", "merchant_id": "20191129183400001459645700000072", "body": "Iphone6 16G", "buyer_id": "o8uJ6uGXLlPFCpQA-F9UnLPnF3tw", "notify_id": "20220505105700004600083200072203", "notify_type": "TRADE_SYNC", "total_amount": "0.01", "isv_id": "20191129153900001401755600000066", "trade_status": "ORDER_SUCCESS", "trade_no": "4200001421202205052017454108", "receipt_amount": "0.01", "buyer_pay_amount": "0.01" }
如何验签
$success = $aop->checkSign($_POST); if ($success == false) { die('error'); } die('success');
感谢
❤️ 感谢所有对项目进行捐助支持的朋友们~
下面是捐助名单,按时间排序
问题反馈
如果您在使用过程中遇到了问题,请先反馈 issue
着急使用的话请联系 绿泡泡:Base1024
或是 fork
一份自己改,项目遵循 MIT
开源协议
请务必反馈 issue