在对接微信jsapi支付的时候,各种配置已经配置好,但是ios支付的时候会报错,url 未注册的问题。
假如我们支付界面是:
http://www.abc.com/page/pay/index
支付目录有两种配置方式:
支付目录需要配置到
http://www.abc.com/
后面的“/”不能少
支付目录需要配置到
http://www.abc.com/page/pay/index
这时候,安卓的是可以调起支付的弹窗的,但是ios调不起来,原因是ios需要配置首页地址,这时候,支付目录还需要在增加一个首页的路径,这个首页是指,第一次进入微信前端界面的路径,比如第一次进入首页的地址是
http://www.abc.com/page/home
支付目录就需要再配置一个
http://www.abc.com/page/home
如果是第一种顶级域名配置的话,此配置可以忽略
建议是使用第一种配置方案,配置顶级域名
这时候可以发现一个奇怪的问题,就是安卓系统的,可以呼起支付弹窗,ios却报错了,url未注册。网上搜索说的是,使用uniapp的时候,pushstate路径的时候,并没有设置成功,所以导致问题的发生。
uniapp在进行支付界面的时候 ,需要进行一下界面的刷新,这样,ios就可以成功呼起支付弹窗了。
uniapp跳转支付目录的代码
uni.navigateTo({
url: '/page/pay/index' ,
// #ifdef H5
success:(res)=>{
if(res.errMsg == 'navigateTo:ok'){
//跳转成功后对页面进行刷新
window.location.reload (true);
}
}
// #endif
})