今天在做使用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