需求:
希望让使用者透过微信浏览器开启web,并进行支付。
但JSAPI调起支付时,出现验证签名失败的问题。
操作路径:
- 前端透过https://open.weixin.qq.com/connect/oauth2/authorize成功取得code
- 用code向后端发出请求,成功取得openId(后端透过https://api.weixin.qq.com/sns/oauth2/access_token取得)
- 用openId向后端发出请求,后端透过https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi成功下单
- 并取得JSAPI调起支付所需appId、timeStamp、nonceStr、package、signType、paySign回传给前端
- 前端用上述资讯(确定有值)调用JSAPI支付,但跳出「付款验证签名失败」的提示
疑问:
- 微信支付接口签名校验工具https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1 是否不适用api v3的签名?
- 若已不适用,那api v3的开发者该如何排除签名错误呢?
补充:
签名的计算,参考此页面https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_4.shtml#menu1
采用和API header的Authorization一样的签名计算方式,将appId、timeStamp、nonceStr、package放入计算签名。
下单可以成功,代表Authorization的签名是无误的。而JSAPI调起支付的签名却出现错误。
兄弟你的问题解决了吗
而且这个签名工具 需要商户KEY ,但是另一个文档得签名当时又不需要,不知道哪个是准确得
https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_0.shtml
这个签名方式是干嘛得?