问题描述:
对接服务商向特约商户转账中发现 , 转账 ,查账 , 查询账单 , 接口都是正常但是下载账单报错 报错内容 "应答的微信支付签名验证失败"
问题分析:
重要的事情说三遍 "请仔细阅读官方文档"
https://github.com/wechatpay-apiv3/wechatpay-apache-httpclient
下载文件不需要应答 可以关闭应答
关闭应答后发现请求正常了但是又发现了一个问题: 下载下来的问题报了一个新问题
“错误的签名,导致验证失败” 最后发现原来问题是因为
多了一个\n 换行 导致的 ,跟微信的人沟通了一下
官方没有计划,自己解决
解决方案 重写一下WechatPay2Credentials 类中 buildMessage 方法
总结
- 应答的微信支付签名验证失败 是因为下载账单时没有Request-ID 导致 解决方案 关闭 应答"withValidator(response -> true)"
- INVALID REQUEST 这个错误是因为签名是多了一个换行 解决方案 重写一些签名方法
然后呢?你这个重写动作用在了哪里呢?