收藏
回答

微信支付v3 jsapi调起支付时,签名验证错误

需求:

希望让使用者透过微信浏览器开启web,并进行支付。

但JSAPI调起支付时,出现验证签名失败的问题。


操作路径:

  1. 前端透过https://open.weixin.qq.com/connect/oauth2/authorize成功取得code
  2. 用code向后端发出请求,成功取得openId(后端透过https://api.weixin.qq.com/sns/oauth2/access_token取得)
  3. 用openId向后端发出请求,后端透过https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi成功下单
  4. 并取得JSAPI调起支付所需appId、timeStamp、nonceStr、package、signType、paySign回传给前端
  5. 前端用上述资讯(确定有值)调用JSAPI支付,但跳出「付款验证签名失败」的提示


疑问:

  1. 微信支付接口签名校验工具https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1 是否不适用api v3的签名?
  2. 若已不适用,那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调起支付的签名却出现错误。

最后一次编辑于  2021-02-18
回答关注问题邀请回答
收藏

12 个回答

正在加载...

登录 后发表内容
问题标签