您的位置:首页 > 移动开发 > 微信开发

微信支付:服务器(Java)统一下单获取prepay_id成功,前端公众号里调用jsapi提示支付验证签名失败

2017-08-25 09:19 851 查看
昨天折腾一宿,就是因为这个问题:

微信支付:服务器统一下单获取prepay_id成功,前端公众号里调用jsapi提示支付验证签名失败(签名工具测试签名正确)

先说出问题原因:统一下单使用的微信支付官方下载的demo的Java版,https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

这个demo里统一下单使用的签名方式是HMAC-SHA256,而页面签名方式用的https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6

这里默认的是签名方式是MD5,前后两个签名方式不一至导致的“支付验证签名失败”。

解决方法:前后两个签名方式调成一致,同时用MD5或同时用HMAC-SHA256。

注意事项:回调的时候也用一致的签名方法!!

感悟:明明是在线签名工具签名正确了的,明明是默认sign_type就是MD5的,但是谁想到还有前后签名不一致这一说,不说坑不坑的事了,昨天因为找不到原因,眼睛瞪成铜铃大把代码、公众号、商户号,CSDN上相关文档翻了个底朝天,也算有所收获吧,至于有的文档里说把密钥重置一下就可以了什么的,大约是大家的笑谈吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐