微信公众号支付调用chooseWXPay提示“errmsg choosewxpay fail”

微信公众号支付一直提示“errmsg choosewxpay fail”,也没有提示具体错误信息,签名没有问题(签名验证地址:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1),支付目录设置也没有问题,由于用的是微信提供的sdk,全部重点检查了sdk的具体流程,发现了原来是sdk签名使用的加密算法问题。php

根据微信支付的业务流程,支付主要有两个步骤:1 后台调用统一下单接口获取prepay_id,2 前端再调用js函数chooseWXPay拉起支付,这两个流程都须要用到签名前端

sdk下载地址:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1,使用的java版本的sdk,默认调用统一下单接口的加密是HMACSHA256,而前端js调用chooseWXPay的加密算法只支持MD5,两次的加密算法不一致也致使提示错误信息“errmsg choosewxpay fail”,具体也不知道这两个流程的加密算法有什么关联,微信也不说明。java

sdk文件WXPay.java中默认为HMACSHA256,都修改成MD5调用支付接口了算法

 

后面根据错误缘由针对性的查了一下微信支付HMACSHA256仍是有其余同窗发现了这个问题,http://blog.csdn.net/neverneverstops_/article/details/77067169,只是你们搜索的时候通常都是搜索“errmsg choosewxpay fail”、签名错误等,查到的都是签名错误、支付目录设置问题等等。api

相关文章
相关标签/搜索