这是一个坑!
今天在调测微信的申请退款接口,结果一直报“签名错误”,但使用同样的签名方法请求“统一下单接口”就没有问题!Why?
后来反复测试,都报签名错误,然后我使用了微信提供的签名校验工具进行比较,MD,和我本地生成的一模一样啊!那为什么还报签名错误啊?
后来在百度中偶然遇到答案,竟然是因为我的退款原因(refund_desc)参数是中文的。。。于是我换成了数字,果然,没有签名问题了。
感觉有点坑啊,如果是中文问题,那为什么使用官方提供的校验工具还能校验通过呢?!就因为这个问题浪费我几十分钟......(但不知道是否还有其它因素)
在此贴出规避方法,希望能帮到大家!
签名错误的消息:
<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[签名错误]]></return_msg></xml>
微信签名校验工具地址:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1