服务端生成签名要用appid 全小写参数名,前端调起jsapi支付台用appId驼峰参数名
【已解决】JSAPI支付 微信内H5调起支付 签名验证失败后端返回的参数: { "timeStamp": "1615466808", "package": "prepay_id=wx1120464888989129d021ad173b11bd0000", "appId": "wx81dbeaf5cdebab02", "sign": "603C901CBDAA9D7484BD9BF4BDE7FD99", "nonceStr": "0df69c99116e474282440ebe8861a0db" } 前端代码: function onBridgeReady(){ WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId":"wx81dbeaf5cdebab02", //公众号名称,由商户传入 "timeStamp":"1615466808", //时间戳,自1970年以来的秒数 "nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串 "package":"prepay_id=wx1120464888989129d021ad173b11bd0000", "signType":"MD5", //微信签名方式: "paySign":"603C901CBDAA9D7484BD9BF4BDE7FD99" //微信签名 }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ) {} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 } ); } if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); }else if (document.attachEvent){ document.attachEvent('WeixinJSBridgeReady', onBridgeReady); document.attachEvent('onWeixinJSBridgeReady', onBridgeReady); } }else{ onBridgeReady(); } 1. 已经在微信签名工具上验证签名无误 2. 商户私钥其他支付如H5扫码支付都无问题,密钥无误,且确认没有变更(就一个商户接了支付) 3. 接入的是JSAPI支付,H5的接入顺利且无异常,JSAPI一直卡在最后这个签名 还是会出现下方的错误,求求了救救孩子吧,看了一天没发现啥问题。 [图片] 问题已解决,见回复。
2024-11-27V3版本jsapi,服务端生成签名的时候,需要appid,注意是全小写,前端调起支付台传递的参数要appId,注意是小驼峰,此坑刚踩完,新鲜出炉,官方大大就不能改改官方文档或者代码做到和文档一致吗?太坑牛马了
微信支付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调起支付的签名却出现错误。
2024-11-27