支付宝退款接口对接流程PHP语言

编程入门 行业动态 更新时间:2024-10-27 18:25:03

<a href=https://www.elefans.com/category/jswz/34/1767806.html style=支付宝退款接口对接流程PHP语言"/>

支付宝退款接口对接流程PHP语言

先分享一下支付宝退款的程序源码(我这段代码是通过配置证书而不是字符串秘钥的方式)

sdk下载地址:

    public function refund($refund){$appCertPath = THINK_PATH."Library/Vendor/alipay-sdk-PHP-4.9.1/aop/cert/appCertPublicKey_2016********2148.crt";$alipayCertPath = THINK_PATH."Library/Vendor/alipay-sdk-PHP-4.9.1/aop/cert/alipayCertPublicKey_RSA2.crt";$rootCertPath = THINK_PATH."Library/Vendor/alipay-sdk-PHP-4.9.1/aop/cert/alipayRootCert.crt";require_once THINK_PATH.'Library/Vendor/alipay-sdk-PHP-4.9.1/aop/AopCertClient.php';require_once THINK_PATH.'Library/Vendor/alipay-sdk-PHP-4.9.1/aop/request/AlipayTradeRefundRequest.php';$aop = new \AopCertClient();//网关与证书配置$aop->gatewayUrl = '.do';$aop->appId = '应用id';$aop->rsaPrivateKey = '用工具生成的RSA私钥,去头去尾去空格';$aop->alipayrsaPublicKey=$aop->getPublicKey($alipayCertPath);//'请填写支付宝公钥,一行字符串';$aop->isCheckAlipayPublicCert = true;$aop->appCertSN = $aop->getCertSN($appCertPath);$aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath);//算法编码与格式配置$aop->apiVersion = '1.0';$aop->signType = 'RSA2';$aop->postCharset='UTF-8';$aop->format='json';//参数内容配置$request = new \AlipayTradeRefundRequest ();$parameter = array("out_trade_no"=>$this->payInfo['order_id'],//自己商城系统内的订单号,也是原来被付款的订单号"refund_amount"=>$this->payInfo['amount'],//退款金额"refund_reason"=>"正常退款");$request->setBizContent(json_encode($parameter));$result = $aop->execute ( $request);$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";$resultCode = $result->$responseNode->code;
     //以下是退款成功后的回调商城对应的操作,与支付宝退款无关 $orderRefund = new OrderRefund();if(!empty($resultCode)&&$resultCode == 10000){$orderRefund->returnOkCallback($refund,"成功提交退款至支付宝账户");} else {$orderRefund->returnErrorCallback($refund,"提交退款至支付宝账户失败");}}

1.首先你在支付宝平台上要有自己的应用,.htm,没有则创建

$aop->appId 即我们创建的应用id

2.配置秘钥,下载官方工具生成,文档地址:,生成证书也在该文档中
$aop->rsaPrivateKey

3.参数内容中我还有一个订单的详情内容没有配置,只是一个简单的退款,如果你想丰富你的退款商品或者订单信息,查看官方退款接口文档

.trade.refund

4.在线调试地址:.htm#/alipay.trade.refund


遇到的坑汇总一下
1.明明信息都是对的,接口返回证书错误,更改了sdk中一处精度的问题,AopCertClient.php的135行
    /*** 0x转高精度数字* @param $hex* @return int|string*/function hex2dec($hex){$dec = 0;$len = strlen($hex);for ($i = 1; $i <= $len; $i++) {$dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i))));}//return round($dec,0);return $dec;}

----------------------------------------------------------------

愿每个程序员都少走弯路,少踩坑,多分享帮助更多的人

更多推荐

支付宝退款接口对接流程PHP语言

本文发布于:2024-03-06 10:37:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1715107.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:支付宝   接口   流程   语言   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!