在post调教数据https://api.mch.weixin.qq.com/pay/unifiedorder 返回
<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 是效验通过的
appid:wx36901e1fe756b722
我也遇到了同样的问题,最后发现是因为body参数里面使用了中文造成的。
解决方法写出来供大家参考一下:
md5加密的时候字符串使用utf-8。(这个网上好多搜一下就有)
请求微信接口的时候http的头部信息的Content-Type参数里面写上text/xml;charset=utf-8
保证 key, appid, mch_id 等参数正确的情况下。
生成签名时,参数位置顺序问题也会导致签名错误。
解决方法 -> 工具:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1,位置顺序请参考工具生成的顺序。