小程序
小游戏
企业微信
微信支付
扫描小程序码分享
上周在做微信支付时,加密方式选择了HMAC-SHA256,使用JSAPI的统一下单接口,可以正确地跑通,拿到返回数据,今天突然跑不通了,一直报签名错误,一模一样的代码,只是把加密方式改成MD5,就通过了。难道是微信把这个加密方式干掉了?
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
花了好几天时间挖坑,终于搞定HMAC-SHA256签名,可以使用,这里面有个坑,用默认的MD5时,签名里无需加入sign_type字段就可以验证通过,改成HMAC-SHA256后需加入sign_type,并且要注意参数名称排序顺序,后面的pay_sign也一样。我改的程序之前是别人开发的,我中间接进去将原先的MD5改成HMAC-SHA256,根本就不会去想签名参数少了,以为原先MD5可以了应该参数都没问题的,哎。。。这个参数为什么不直接搞成必须填的呢?为了省这一个参数,挖了一个好大的坑,我估计很多人都被这坑坑惨了!
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
没有,应该还是可用的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
花了好几天时间挖坑,终于搞定HMAC-SHA256签名,可以使用,这里面有个坑,用默认的MD5时,签名里无需加入sign_type字段就可以验证通过,改成HMAC-SHA256后需加入sign_type,并且要注意参数名称排序顺序,后面的pay_sign也一样。我改的程序之前是别人开发的,我中间接进去将原先的MD5改成HMAC-SHA256,根本就不会去想签名参数少了,以为原先MD5可以了应该参数都没问题的,哎。。。这个参数为什么不直接搞成必须填的呢?为了省这一个参数,挖了一个好大的坑,我估计很多人都被这坑坑惨了!
<mch_billno>ssss33</mch_billno><mch_id>1529243621</mch_id><wxappid>wx7be0736b916a50f1</wxappid><send_name>111</send_name><re_openid>oiW0l03-60UfHJfo0olLt3wOLb0E</re_openid><total_amount>100</total_amount><total_num>1</total_num><wishing>2222</wishing><client_ip>118.89.65.223</client_ip><act_name>3333321ss</act_name><remark>111</remark><nonce_str>905Qh0J59d69JjDtD7QkyRAm576kh5hU</nonce_str><sign_type>HMAC-SHA256</sign_type><sign>F3CE6B2EB6869FFBEE99DDEC6EB04DE93D91ABD68BDB50E237685571098E9432</sign></xml>
没有,应该还是可用的。