您好,登錄后才能下訂單哦!
用于記錄接入微信JS-SDK的坑,以后方便查詢 第一次接入公眾號微信支付、分享、定位等等的坑的時候,心里是迷茫而又恐懼。因為,聽說坑特別多,后來發現自己的親身體驗到了這一點。
支付的坑
1、當前URL未注冊
問題: 微信公眾號H5調起支付時,點擊支付按鈕出現“當前頁面的URL未注冊”的提示。
解決辦法:由于2017年8月1日微信官方把關于支付的信息轉移到了商戶平臺:公眾平臺微信支付公眾號支付授權目錄、掃碼支付回調URL配置入口已于8月1日遷移至商戶平臺(pay.weixin.qq.com )
所以進入以下位置:
登錄微信商戶平臺-產品中心-開發配置,配置支付授權路徑。如果掉起支付的頁面在 域名/pay.html中,那么就在此添加授權路徑, 如我的掉起支付的頁面在www.weixinPay.com/pay.html 中,那么授權目錄就配置為htt://www.weixinPay.com/
tip: 注意:后面的 / 一定要加上,表示該路徑下的頁面都可以調起微信的支付接口。
2、如果按照以上還是彈出當前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說明文檔
分享的坑
根據JS-SDK的文檔,很多人都是在初始化的wx配置的時候,傳入的當前的URL地址不正確。 然后就導致如下結果:
解決辦法: 請在保證后臺能正確返回初始化需要的配置參數的情況下
修改前: // let currentUrl = window.location.href 修改后 let currentUrl = window.location.href.split('#')[0]
神奇成功了開心
需要注意的幾點:
jsApList: [] 需要加入對應參數。比如,分享加入'onMenuShareTimeline', 'onMenuShareAppMessage'。 具體的對應接口的參數可以參考文檔
所有接口的調用,請保證在wx.ready()執行后,才調用。文檔里面是這么建議的。
定位的坑
剛開始定位的,內心是有點小激動的。因為覺得這個功能很高大尚,當然了這只是我個人的想法。好了~,不扯了。
同樣的,給微信初始化的 jsApList 加入對應的參數。 然后在wx.ready()函數執行,但是,發現無論如何第一次進入頁面都無法成功彈出授權彈框。
后來發現,在頁面完成之后。延遲一秒再進行獲取定位,即可 百分百成功!坑爹有木有。 代碼如下
目前遇到這個三個坑,后期遇到再寫上吧。痛苦的經歷需要不要再有了
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。