-
-
Notifications
You must be signed in to change notification settings - Fork 8.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
拉取支付评价的接口报错:商户签名错误 #752
Comments
WxPayQueryCommentRequest request = new WxPayQueryCommentRequest();
|
找到表现原因了,是limit不能设置值!! 这样就可以正常返回评论数据!!!别问我为什么,我也不知道。。 |
所以现在的结论是,代码有问题,然后接口请求也不能填那个limit?是这样吗? |
@binarywang 反正目前调用this.wxService.queryComment(DateUtils.addDays(new Date(), -30), new Date(), 0, null);是可以正常返回数据的。只要设置了limit就会报错。 |
可能真的是这样,你看我单元测试里的用例limit就设的null,测过没问题 |
又仔细调试下了,limit确实没参与签名,妈蛋,这太坑爹了 |
@binarywang 哈哈哈哈,那我就放心了,你快代表广大人民去给微信提bug吧。 |
提bug没用的,不如自己动手在程序里做修补,代码已提交,一会儿发布个测试版本,可以测一下 |
3.1.8.B版本已修复 |
* develop: 发布3.1.8.B测试版本 Wechat-Group#752 修复微信支付拉取支付评价的接口(limit不参与签名)
@binarywang 我去,今天突然发现,又拉取不了评论了,报同样的错误“商户签名错误”,程序没有部署过,看日志之前都是正常拉取,昨天下午开始拉取17:30左右到现在一直都报错无法拉取。。感觉是微信方的这个接口又做了调整,麻烦你看看你的单元测试现在能过吗? |
单元测试你也可以跑一下的 |
@binarywang 跑了一下BaseWxPayServiceImplTest里的testQueryComment测试用例,不出所料,果然跑不过了。。 `【请求地址】:https://api.mch.weixin.qq.com/billcommentsp/batchquerycomment 返回代码:[FAIL],返回信息:[商户签名错误],微信返回的原始报文: =============================================== |
看了源码,尝试把两个被忽略的参数去掉之后,测试用例可以通过,应该是微信已经修复了这个接口。然而没有通知你。- -# WxPayQueryCommentRequest.java里的getIgnoredParamsForSign方法。 @OverRide 这里两个参数都去掉就可以了。 |
果然如此,微信支付的软件开发团队可真够垃圾的,有问题的接口居然能存在这么久才修复,才开始开发时候居然不先测试好就发布出来。(估计他们也会看到我说这句话,who cares!) |
我也遇到这个问题了,提示的是签名长度错误,代码中有问题 |
调用微信支付里拉取用户评论数据的接口:
this.wxService.queryComment(DateUtils.addDays(new Date(), -30), new Date(), 0, 200);
报错:
WxPayException(customErrorMsg=null, returnCode=FAIL, returnMsg=商户签名错误, resultCode=null, errCode=null, errCodeDes=null, xmlString=
<return_code></return_code>
<return_msg></return_msg>
)
将打印出来的请求数据放到微信支付接口签名校验工具里校验,结果如下:
1.接口请求的原始数据去校验,校验失败。
2.接口请求的原始数据去掉 <sign_type>HMAC-SHA256</sign_type>,校验成功。
结论:从实验结果上,请求数据设置了signType就会签名出错,不清楚是微信本身问题,还是weixin-java-pay的接口问题, <sign_type>HMAC-SHA256</sign_type> 本身有默认值,建议去掉这个设置,以便解决这个问题。
The text was updated successfully, but these errors were encountered: