詳解vue項(xiàng)目接入微信JSSDK的坑
用于記錄接入微信JS-SDK的坑,以后方便查詢 第一次接入公眾號(hào)微信支付、分享、定位等等的坑的時(shí)候,心里是迷茫而又恐懼。因?yàn)?,聽說(shuō)坑特別多,后來(lái)發(fā)現(xiàn)自己的親身體驗(yàn)到了這一點(diǎn)。
支付的坑
1、當(dāng)前URL未注冊(cè)
問(wèn)題: 微信公眾號(hào)H5調(diào)起支付時(shí),點(diǎn)擊支付按鈕出現(xiàn)“當(dāng)前頁(yè)面的URL未注冊(cè)”的提示。
解決辦法:由于2017年8月1日微信官方把關(guān)于支付的信息轉(zhuǎn)移到了商戶平臺(tái):公眾平臺(tái)微信支付公眾號(hào)支付授權(quán)目錄、掃碼支付回調(diào)URL配置入口已于8月1日遷移至商戶平臺(tái)(pay.weixin.qq.com )
所以進(jìn)入以下位置:
登錄微信商戶平臺(tái)-產(chǎn)品中心-開發(fā)配置,配置支付授權(quán)路徑。如果掉起支付的頁(yè)面在 域名/pay.html中,那么就在此添加授權(quán)路徑, 如我的掉起支付的頁(yè)面在www.weixinPay.com/pay.html 中,那么授權(quán)目錄就配置為htt://www.weixinPay.com/
tip: 注意:后面的 / 一定要加上,表示該路徑下的頁(yè)面都可以調(diào)起微信的支付接口。
2、如果按照以上還是彈出當(dāng)前URL未注冊(cè) 因?yàn)槲⑿胖Ц秾?duì)spa項(xiàng)目的hash路由兼容還是不很好。需要加上一個(gè) "?" 如圖:
代碼如下:
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) } }
我這里是根據(jù)App.vue文件,進(jìn)行路由監(jiān)控。然后給每個(gè)頁(yè)面都加上問(wèn)號(hào),雖然會(huì)些許性能消耗。但是方便省事,具體可以根據(jù)自己的頁(yè)面適當(dāng)修改。
分享的坑
根據(jù)JS-SDK的文檔,很多人都是在初始化的wx配置的時(shí)候,傳入的當(dāng)前的URL地址不正確。 然后就導(dǎo)致如下結(jié)果:
解決辦法: 請(qǐng)?jiān)诒WC后臺(tái)能正確返回初始化需要的配置參數(shù)的情況下
修改前: // let currentUrl = window.location.href 修改后 let currentUrl = window.location.href.split('#')[0]
神奇成功了開心
需要注意的幾點(diǎn):
jsApList: [] 需要加入對(duì)應(yīng)參數(shù)。比如,分享加入'onMenuShareTimeline', 'onMenuShareAppMessage'。 具體的對(duì)應(yīng)接口的參數(shù)可以參考文檔
所有接口的調(diào)用,請(qǐng)保證在wx.ready()執(zhí)行后,才調(diào)用。文檔里面是這么建議的。
定位的坑
剛開始定位的,內(nèi)心是有點(diǎn)小激動(dòng)的。因?yàn)橛X得這個(gè)功能很高大尚,當(dāng)然了這只是我個(gè)人的想法。好了~,不扯了。
同樣的,給微信初始化的 jsApList 加入對(duì)應(yīng)的參數(shù)。 然后在wx.ready()函數(shù)執(zhí)行,但是,發(fā)現(xiàn)無(wú)論如何第一次進(jìn)入頁(yè)面都無(wú)法成功彈出授權(quán)彈框。
后來(lái)發(fā)現(xiàn),在頁(yè)面完成之后。延遲一秒再進(jìn)行獲取定位,即可 百分百成功!坑爹有木有。 代碼如下
目前遇到這個(gè)三個(gè)坑,后期遇到再寫上吧。痛苦的經(jīng)歷需要不要再有了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli2.x舊版本卸載不掉的問(wèn)題踩坑指南(附Vue腳手架安裝教程)
遇到一個(gè)Vuecli2腳手架卸載不了的問(wèn)題,查了許多資料說(shuō)的都比較復(fù)雜,所以下面這篇文章主要給大家介紹了關(guān)于vue-cli2.x舊版本卸載不掉的問(wèn)題踩坑的相關(guān)資料,文中還附了Vue腳手架安裝教程,需要的朋友可以參考下2022-07-07npm?install安裝報(bào)錯(cuò)的幾種常見情況
當(dāng)你跑起一個(gè)項(xiàng)目的時(shí)候,第一步需要先安裝依賴npm install,下面這篇文章主要給大家介紹了關(guān)于npm?install安裝報(bào)錯(cuò)的幾種常見情況,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07解決ant design vue 表格a-table二次封裝,slots渲染的問(wèn)題
這篇文章主要介紹了解決ant design vue 表格a-table二次封裝,slots渲染的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10vue3+element-plus動(dòng)態(tài)路由菜單示例代碼
這篇文章主要介紹了vue3+element-plus動(dòng)態(tài)路由菜單示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11解決vue終端報(bào)錯(cuò):不是內(nèi)部或外部命令
最近學(xué)習(xí)一下前端框架Vue,整體上感覺還是比較有意思的,但是在安裝vue-cli腳手架的時(shí)候,出現(xiàn)了一些問(wèn)題,解決問(wèn)題也花費(fèi)了不少時(shí)間,下面這篇文章主要給大家介紹了關(guān)于解決vue終端報(bào)錯(cuò):不是內(nèi)部或外部命令的相關(guān)資料,需要的朋友可以參考下2023-02-02vue的$http的get請(qǐng)求要加上params操作
這篇文章主要介紹了vue的$http的get請(qǐng)求要加上params操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11VUE登錄注冊(cè)頁(yè)面完整代碼(直接復(fù)制)
這篇文章主要給大家介紹了關(guān)于VUE登錄注冊(cè)頁(yè)面的相關(guān)資料,在Vue中可以使用組件來(lái)構(gòu)建登錄注冊(cè)頁(yè)面,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12在 Vue 3 中設(shè)置 `@` 指向根目錄的幾種常見方法匯總
在 Vue 3 項(xiàng)目開發(fā)中,為了方便管理和引用文件路徑,設(shè)置 @ 指向根目錄是一項(xiàng)常見的需求,下面給大家分享在Vue3中設(shè)置 `@` 指向根目錄的方法匯總,感興趣的朋友一起看看吧2024-06-06解決找不到模塊“xxx.vue”或其相應(yīng)的類型聲明問(wèn)題
這篇文章主要介紹了解決找不到模塊“xxx.vue”或其相應(yīng)的類型聲明問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-10-10Vue3中watch監(jiān)聽對(duì)象的屬性值(監(jiān)聽源必須是一個(gè)getter函數(shù))
這篇文章主要介紹了Vue3中watch監(jiān)聽對(duì)象的屬性值,監(jiān)聽源必須是一個(gè)getter函數(shù),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12