在请求参数中,需要提交sign,但每次发送请求都提示“签名错误”,然而,我用微信提供的签名生成工具测试,得到的sign和代码生成的sign是完全一致的。
请问这是为什么?
我发送的xml:
<xml>
<nonce_str><![CDATA[WNTQJ3K2TY81VKIMV3RJQA8NBWM89VGO]]></nonce_str>
<mch_billno><![CDATA[10011618201511022089462605]]></mch_billno>
<mch_id><![CDATA[10011618]]></mch_id>
<wxappid><![CDATA[这里是wxappid]]></wxappid>
<send_name><![CDATA[s]]></send_name>
<re_openid><![CDATA[这里是openid]]></re_openid>
<total_amount><![CDATA[100]]></total_amount>
<total_num><![CDATA[1]]></total_num><wishing><![CDATA[2]]></wishing>
<client_ip><![CDATA[182.254.138.119]]></client_ip>
<act_name><![CDATA[2]]></act_name>
<wishing><![CDATA[2]]></wishing>
<remark><![CDATA[2]]></remark>
<sign><![CDATA[B3B9BB09BF1BEC9A9CB6134B231D7777]]></sign>
</xml>
最后的sign与签名工具得到的sign完全一致:
3.md5编码并转成大写:
sign=B3B9BB09BF1BEC9A9CB6134B231D7777
然而每次调用都提示:
{"xml"=>{"return_code"=>"FAIL", "return_msg"=>"签名错误", "result_code"=>"FAIL", "err_code"=>"SIGN_ERROR", "err_code_des"=>"签名错误", "mch_billno"=>"10011618201511024194799576", "mch_id"=>"10011618", "wxappid"=>"这里是wxappid", "re_openid"=>"这里是openid", "total_amount"=>"100"}}
根据百度的搜索结果:
去掉<![CDATA这个标签: 无效
更换key:无效
所有参数改为英文: 无效
轻各位帮忙看看,谢谢!
不好意思各位,确实如一楼所言,是key的问题,感谢1楼!
我也遇到了签名错误的问题,签名与签名工具生成的sign是一样的,而且改了商户平台的秘钥也不行,怎么搞??大神指导一下,谢谢
我也遇到过,是因为签名用到的key参数错了,那是在后台自定义生成的,不知道你是否这个错误