用於記錄接入微信JS-SDK的坑,之後方便查詢
第一次接入公衆號微信支付、分享、定位等等的坑的時候,內心是迷茫而又恐懼。由於,據說坑特別多,後來發現本身的親身體驗到了這一點。html
一、當前URL未註冊前端
因此進入如下位置:vue
登陸微信商戶平臺-產品中心-開發配置,配置支付受權路徑。若是掉起支付的頁面在 域名/pay.html中,那麼就在此添加受權路徑,如個人掉起支付的頁面在www.weixinPay.com/pay.html 中,那麼受權目錄就配置爲htt://www.weixinPay.com/微信
tip: 注意:後面的 / 必定要加上,表示該路徑下的頁面均可以調起微信的支付接口。函數
二、若是按照以上仍是彈出當前URL未註冊
由於微信支付對spa項目的hash路由兼容仍是不很好。須要加上一個 "?"
如圖:
代碼以下:性能
watch: { $route() { this.directRightUrl() } }, methods: { directRightUrl() { let { href, protocol, host, pathname, search, hash } = window.location search = search || '?' let newHref = `${protocol}//${host}${pathname}${search}${hash}` if (newHref !== href) { window.location.replace(newHref) } }
我這裏是根據App.vue文件,進行路由監控。而後給每一個頁面都加上問號,雖然會些許性能消耗。可是方便省事,具體能夠根據本身的頁面適當修改。微信支付
根據JS-SDK的文檔,不少人都是在初始化的wx配置的時候,傳入的當前的URL地址不正確。
而後就致使以下結果:this
修改前: // let currentUrl = window.location.href 修改後 let currentUrl = window.location.href.split('#')[0]
神奇成功了開心spa
須要注意的幾點:code
具體的對應接口的參數能夠參考文檔
剛開始定位的,心裏是有點小激動的。由於以爲這個功能很高大尚,固然了這只是我我的的想法。好了~,不扯了。
一樣的,給微信初始化的jsApList加入對應的參數。
而後在wx.ready()函數執行,可是,發現不管如何第一次進入頁面都沒法成功彈出受權彈框。
後來發現,在頁面完成以後。延遲一秒再進行獲取定位,便可 百分百成功!坑爹有木有。
代碼以下
目前遇到這個三個坑,後期遇到再寫上吧。痛苦的經歷須要不要再有了
關注公衆號'前端樹',更多實用性的乾貨