微信支付调起后白屏,怎么排查问题?
我在做移动端H5接入微信支付,调起支付页面后直接白屏,控制台也没报错。本地测试用的是location.href = res.mweb_url跳转,但用户支付完回不到回调页面。
查了官方文档说要加redirect_url参数,但我拼接后还是不行。这是我的跳转代码:
const url = ${res.mweb_url}&redirect_url=${encodeURIComponent('https://xxx.com/pay/success')};
location.href = url;
是不是域名没备案或者HTTPS有问题?但其他页面都能正常访问啊,卡在这儿好几天了……
第一,redirect_url这个参数拼接是对的,但要注意两点:
1. 域名必须备案且通过微信支付商户平台配置
2. 必须是HTTPS(你说了其他页面能访问,这块应该没问题)
第二,常见问题其实是JS里面的跳转时机不对。试试这样改:
如果还不行,检查这几个地方:
1. 回调域名是否在商户平台"支付授权目录"里配置了
2. 测试环境要用真实微信打开,浏览器模拟器不行
3. redirect_url的域名要和当前页面同源(二级域名也要一致)
之前有个项目也是这样,排查半天发现是商户平台配置漏了一个子域名。微信支付这玩意儿文档写得跟谜语似的,建议直接去商户后台把能配的域名全配上。