问题描述:微信H5支付,都能唤起微信支付,安卓可正常支付,IOS则提示“验签失败”无法进行正常支付
定位问题:
对比官方示例唤起网址与项目网址发现前台获取到的url地址被转义
“&”被转义成了“&”
官方实例唤起地址
https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx141051038454546d689b30be1249187332&package=2348152666&redirect_url=https%3a%2f%2fwxpay.wxutil.com%2fmch%2fpay%2fh5jumppage.php
项目唤起地址
https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx14103442693209239d299f011317843200&package=3774002815&redirect_url=http%3A%2F%2Fpc.mtyolshop.cn%3A7002%2Forder_1560479682321_payment-wap-result.html
解决方法:
//"&" 替换成 "&"
let url = response.gateway_url.replace(/&/g,"&");
window.location.href = url;
return
Tips:
- redirect_url的值做urlencode
- package参数必需不能为空
- 如果设置了回跳地址redirect_url,请确认设置的回跳地址的域名与申请H5支付时提交的授权域名是否一致
参考文献:
【微信支付】H5支付开发文档