果然是前端报验签失 可以检测前端调用的接口名称 wx.chooseWXPay 和 WeixinJSBridge传的参数个数和大小写不一样 wx.chooseWXPay 没有appId ,timestamp是小写
微信支付v3 jsapi调起支付时,签名验证错误需求: 希望让使用者透过微信浏览器开启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调起支付的签名却出现错误。
2021-11-02