前言
明确一点。我写的是Java语言的native(扫码支付)的踩坑记录,但是其他的支付方式也是异曲同工。
接入配置
1.微信申请退款接口是需要双向证书的---apiclient_cert.p12,没有证书微信会一直返回400,证书下载的位置:微信商户平台-》账户中心-》 API安全 中下载的 。
2.微信提供的工具类的下载地址:https://pay.weixin.qq.com/wiki/doc/api/native_sl.php?chapter=11_1
3.微信申请退款最好有个退款通知地址,如果没有就需要手动发起退款查询或者跑定时任务去轮询退款订单是否退款成功(有时候通知可能会出现不可达的问题,所以只能自己手动调用)。
4.微信接收退款通知的url和微信接收支付通知的url一样,接收通知成功都需要返回一个成功或者失败状态给微信,不然会一直给你发通知(有时候收到3条,有时候收到4条)。
成功的xml: String xml ="<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
扫码支付申请退款文档地址:https://pay.weixin.qq.com/wiki/doc/api/native_sl.php?chapter=9_4
代码部分
1.组装微信申请退款的参数
// 组装微信退款参数
SortedMa