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

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

sdk下载地址:https://opendocs.alipay.com/open/54/103419#%E8%8E%B7%E5%8F%96%20Alipay%20SDK

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 = 'https://openapi.alipay.com/gateway.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 = newOrderRefund();if(!empty($resultCode)&&$resultCode == 10000){$orderRefund->returnOkCallback($refund,"成功提交退款至支付宝账户");

}else{$orderRefund->returnErrorCallback($refund,"提交退款至支付宝账户失败");

}

}

1.首先你在支付宝平台上要有自己的应用,https://open.alipay.com/platform/developerIndex.htm,没有则创建

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

2.配置秘钥,下载官方工具生成,文档地址:https://opendocs.alipay.com/open/291/105971,生成证书也在该文档中

$aop->rsaPrivateKey

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

https://opendocs.alipay.com/apis/api_1/alipay.trade.refund

4.在线调试地址:https://openhome.alipay.com/platform/demoManage.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,支付宝退款接口对接流程PHP语言相关推荐

  1. 支付宝 app接口对接流程上

    最近开发一个app,需要对接支付宝,现在来整理一下流程吧 1.登录蚂蚁金服开放平台,创建一个移动应用 创建应用中所需要的参数apicloud中会有 2.添加功能,配置公钥(应用公钥) 应用创建成功后, ...

  2. 京东接口对接流程(以下举例物流接口):

    1.注册成为京东宙斯开发者 2.创建应用 控制中心 – 已经应用类型选择京东物流 – 二级应用类型选择青龙应用 注:选择的接口在和京东对接联调的时候可以咨询京东开发者 3.等待审核通过 创建好了应用后 ...

  3. 任务悬赏平台API接口对接流程

    (任务列表接口) 使用场景 通过徽芯~juhujiekou获取接口文档在线任务 建议定时调用此接口, 将获取的任务数据筛选后, 保存到你的本地数据库保存 请求对接 HTTP方法 Post 请求参数 参 ...

  4. 一信通短信接口对接_短信接口对接流程

    下面是php开发语言短信接口接入到项目中的demo示例: // ① 该代码仅供接入动力思维乐信短信接口参考使用,客户可根据实际需要自行编写: // ② 支持发送验证码短信.触发通知短信等: // ③ ...

  5. 【ERP接口】全网ERP接口,导购接口,发货接口,ERP解密接口,电商ERP接口,淘宝ERP接口,ERP接口介绍,ERP接口对接流程,ERP接口价格介绍

    接口密钥: Account和Accessskey是用于您访问API的密钥,具有该接口的权限,请妥善保管 ------------------------------------------------ ...

  6. 支付宝即时到帐付款/退款流程

    随着互联网和移动互联网发展,越来越多的企业和个人开发者在自己的网站接入支付接口,但是网上从接口级详细介绍的很少,完整成功的案例代码几乎没有. 本文经过对米扑代理接入支付宝接口的实战,成功解决了付款/退 ...

  7. 直付通,支付宝白名单D0,接口申请及对接流程

    一.为什么要开直付通? 百度一下汇友支付,获取完美支付解决方案! 支付宝互联网平台直接支付是支付宝平台资金清算的解决方案,方便平台和商家直接实现支付.结算.营销.退款.因此,支付宝强大的安全能力和信用 ...

  8. java 支付宝退款_java实现支付宝退款功能

    最近完成的差不多的项目突然需要加退款的流程需求了,所以来小小的实现以下. 其实对比其他的支付和退款来说,支付宝算是特别专业,也是特别简单的一个了. 一.引入支付宝SDK 在这里说一下,其实每种支付都会 ...

  9. 退款java_java实现支付宝退款功能

    最近完成的差不多的项目突然需要加退款的流程需求了,所以来小小的实现以下. 其实对比其他的支付和退款来说,支付宝算是特别专业,也是特别简单的一个了. 一.引入支付宝SDK 在这里说一下,其实每种支付都会 ...

  10. 支付-支付宝接口全流程

    支付宝支付产品如下:文档:https://b.alipay.com/signing/productSetV2.htm 如何开通支付宝手机网站支付接口? 进入网址:https://b.alipay.co ...

最新文章

  1. 2022-2028年中国密集型光波复用(DWDM)设备行业市场前瞻与投资战略规划分析报告
  2. spoj2 Prime Generator
  3. Webhook与Jenkins自动构建(上)
  4. 面试题 合并两个有序链表
  5. DL之ShuffleNet:ShuffleNet算法的架构详解
  6. android关于控件中setTag(key,Object)的设置的相关问题
  7. 50种奇妙装置玩法,将STEM教育一网打尽
  8. 计算机网络之网络层:2、IP数据报、IP数据报分片
  9. linux中的c技术,基于linux下C开发中的几点技术经验总结
  10. magento php mysql_Mysql版本过低导致Magento报错的解决方案
  11. ABB变频器ACS 310-通讯协议
  12. 【向生活低头】在有联想云教室的win10电脑上更新win10的 变不幸方法
  13. 电商设计素材:15000款淘宝促销水印元素模版,手慢的人领不到!...
  14. N字霸气多空博弈大师能量潮拐点战法通达信 主图/副图/选股指标
  15. 台式计算机键盘灯打开方式,台式电脑开机时键盘灯不亮,必须要按一下Numlock才会亮,但系统没什么问题。怎么办?...
  16. 推荐一款强大的在线编译器
  17. Android 64bit系统中app以32bit运行
  18. mac 触摸板以及个别键“失灵“问题
  19. 新人怎么发邮件,怎么给客户发一封得体的邮箱—TOM邮箱分享
  20. Linux 中有效用户组和初始用户组

热门文章

  1. windows10桌面图标异常,显示为白色图标
  2. Mac常见问题:如何使用文件保险箱加密 Mac 上的启动磁盘!
  3. 中通快递宣布全球发售定价
  4. php博客 程序 论文,php博客系统论文 (附加程序代码)
  5. 大乐斗2服务器维护,腾讯《QQ宠物》、《乐斗Ⅱ》正式停止运营
  6. 魔兽世界3区部落最多的服务器,魔兽世界怀旧服玩家为你推荐,不用排队、非鬼服非单阵营的服务器...
  7. raspberry 防火墙_用Raspberry Pi对您的家庭网络进行防火墙
  8. 洛谷P6685 可持久化动态仙人掌的直径问题
  9. 视频剪辑的工作前景是什么?
  10. psutil:系统、进程,信息都在我的掌握之中