今天在做使用uview-ui vue页面制作h5网站的时候,遇到一个bug,在当前支付页面点击支付,就会报错,提示当前页面的URL未注册。如下图:
但是,这个URL我们是在微信支付授权配置里配置目录了的,所以说不会出错。
但是我们刷新一次当前页面,再点击立即支付就会成功。我就在里面写了一个刷新当前页面的方式,来进行支付。
但是试了好几种刷新当前页面的方法,都不可以。在了解到,vue在微信里的刷新方式是不生效的。
在微信支付页面,当通过JSAPI微信支付的时候,微信会判断当前页面和微信支付中心设置的支付授权目录是否一致,但是vue单页面程序,如果不刷新页面的话,例如你是从页面(/pages/index/index)开始浏览,使用了uni.redirect转向到支付页面,在不刷新的情况下,当调用微信支付的时候,依然识别为/pages/index/index 页面,所以点击支付是就会提示 当前页面的URL未注册 /pages/index/index 的错误提示
解决方法:
在生成H5的项目使用微信JSAPI支付,所有转向支付页面的页面通过location.href来实现,不要使用uni.redirect
buy(id) { location.href='/mobile/pages/index/goods_buy?id='+id; },
参考资料:https://blog.csdn.net/qq_33026699/article/details/103178868