摘要:處理自己的邏輯四重點(diǎn)來了,解決微信無效的問題使用的網(wǎng)友都知道,路由上帶有做路由的跳轉(zhuǎn),而在發(fā)過去做微信驗(yàn)證的的時(shí)候,會(huì)被干掉,最終導(dǎo)致簽名無效。
一,先登陸微信公眾號(hào)后臺(tái)綁定js安全域名,不需要加http或https,詳情百度。 二、信公眾號(hào)后臺(tái)設(shè)置服務(wù)器的IP為白名單,否則無法獲取access_token,詳情百度 三、引入wx-js-sdk
1.使用script標(biāo)簽 http://res.wx.qq.com/open/js/...(支持https)引入;
2.如果使用vue-cli腳手架工具,可以先npm install weixin-js-sdk -s 加載依賴包
以下已腳手架為例
.vue 文件中 import wx from "weixin-js-sdk";
getConfig(){ let that = this; this.$axios({ url:that.api.shareUrl,//換成你實(shí)際請(qǐng)求的路徑 method:"post", data:{ url:window.location.href //獲取當(dāng)前路徑,注意路徑一般不能寫死,請(qǐng)求簽名的路徑和最終調(diào)取wx-sdk路徑必須一致。 } }).then(function (res) { let sign = res.data.data;//后端返回的微信的數(shù)據(jù) wx.config({ debug: true, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會(huì)通過log打出,僅在pc端時(shí)才會(huì)打印。 appId: sign.appId, // 必填,公眾號(hào)的唯一標(biāo)識(shí) timestamp: sign.timestamp, // 必填,生成簽名的時(shí)間戳 nonceStr: sign.nonceStr, // 必填,生成簽名的隨機(jī)串 signature: sign.signature, // 必填,簽名,見附錄1 jsApiList: [ "onMenuShareTimeline", "onMenuShareAppMessage", "hideMenuItems", "showMenuItems", "showAllNonBaseMenuItem", "hideAllNonBaseMenuItem", "startRecord", "stopRecord", "onVoiceRecordEnd", "uploadVoice", "downloadVoice", "playVoice", "onVoicePlayEnd", "pauseVoice", "stopVoice", "openLocation", "getLocation", "chooseWXPay", "onMenuShareQQ", "scanQRCode", ], // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2 }); }).catch(function (err) { }) }; 初始化完成,以調(diào)起微信掃一掃為例 scan(){ let that =this; wx.ready(function() { wx.scanQRCode({ needResult : 1, // 默認(rèn)為0,掃描結(jié)果由微信處理,1則直接返回掃描結(jié)果 success : function(res) { var data = res.resultStr; // 當(dāng)needResult 為 1 時(shí),掃碼返回的結(jié)果 var result =data.split(",")[1];//返回的結(jié)果是碼的類型+‘,’+內(nèi)容,所以要以數(shù)組分割取第二個(gè)。 //處理自己的邏輯 } }); }) }四、重點(diǎn)來了,解決微信signature無效的問題
使用vue-router的網(wǎng)友都知道,路由上帶有#做路由的跳轉(zhuǎn),而#在發(fā)過去做微信驗(yàn)證的signature的時(shí)候,#會(huì)被干掉,最終導(dǎo)致簽名無效。例如你的路徑是 www.a.com/#/scan 拿去簽名,#被干掉以后,你使用www.a.com/#/scan,做wx.config signature是無效的。很多人都知道要使用vue的history模式。
// 路由配置
const RouterConfig = { mode: "history", routes: routers };
例如你的域名是www.a.com,你的文件部署在根目錄下,首頁正常訪問,使用頁面內(nèi)部調(diào)整路由,如菜單等,沒問題。但是一旦你直接訪問www.a.com/scan,或者從首頁菜單跳轉(zhuǎn)到www.a.com/sacn然后刷新本頁,你會(huì)發(fā)現(xiàn)返回404。
以下以nginx為例分析這個(gè)問題,你訪問www.a.com,nginx請(qǐng)求到根目錄下index.html,沒問題,頁面上使用菜單做跳轉(zhuǎn)頁沒問題,但是一旦你直接訪問www.a.com/scan,或者刷新www.a.com/scan,nginx找不到scan這個(gè)文件夾,所以返回404
so,配置 mode: "history",還需要nginx配置配合。訪問不到文件夾的時(shí)候,
location / { if (!-e $request_filename){ rewrite ^/(.*) /index.html last; } }
直接回到你的index.html并把參數(shù)帶回來。解決所有問題
如果你的項(xiàng)目不是部署在根目錄怎么辦?
假如你的項(xiàng)目部署的目錄是 /test/
vue router 的配置為
const RouterConfig = { mode: "history", base:"test", routes: routers };
nginx的配置為
location /test/ { if (!-e $request_filename){ rewrite ^/(.*) /test/index.html last; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/29154.html
摘要:處理自己的邏輯四重點(diǎn)來了,解決微信無效的問題使用的網(wǎng)友都知道,路由上帶有做路由的跳轉(zhuǎn),而在發(fā)過去做微信驗(yàn)證的的時(shí)候,會(huì)被干掉,最終導(dǎo)致簽名無效。 一,先登陸微信公眾號(hào)后臺(tái)綁定js安全域名,不需要加http或https,詳情百度。 二、信公眾號(hào)后臺(tái)設(shè)置服務(wù)器的IP為白名單,否則無法獲取access_token,詳情百度 三、引入wx-js-sdk 1.使用script標(biāo)簽 http://...
摘要:處理自己的邏輯四重點(diǎn)來了,解決微信無效的問題使用的網(wǎng)友都知道,路由上帶有做路由的跳轉(zhuǎn),而在發(fā)過去做微信驗(yàn)證的的時(shí)候,會(huì)被干掉,最終導(dǎo)致簽名無效。 一,先登陸微信公眾號(hào)后臺(tái)綁定js安全域名,不需要加http或https,詳情百度。 二、信公眾號(hào)后臺(tái)設(shè)置服務(wù)器的IP為白名單,否則無法獲取access_token,詳情百度 三、引入wx-js-sdk 1.使用script標(biāo)簽 http://...
摘要:進(jìn)過下面的步驟,一步一步的配置,就可以讓你正確的在項(xiàng)目中引入微信的。在進(jìn)行了正確的微信文件引入后看上面在頁面中調(diào)用如下代碼就可以注入權(quán)限驗(yàn)證配置??梢酝ㄟ^微信提供的兩個(gè)接口來進(jìn)行事件回調(diào)。到這為止,微信的接入就完成了。 微信JS-SDK的功能 如果你點(diǎn)進(jìn)來,那么我相信你應(yīng)該知道微信的JS-SDK可以用來做什么了。微信的官方文檔描述如下。 微信JS-SDK是微信公眾平臺(tái)面向網(wǎng)頁開發(fā)者提供...
摘要:零售商家通過微信支付小程序?qū)崿F(xiàn)線上線下消費(fèi)一體化,通過線上支付線下單品完成商品數(shù)據(jù)的打通。因此小程序搭載智慧零售,能助力商家實(shí)現(xiàn)消費(fèi)場(chǎng)景數(shù)字化以及購買行為具象化,從新的維度提高用戶服務(wù)水平。 隨著移動(dòng)互聯(lián)網(wǎng)、大數(shù)據(jù)、AI等技術(shù)日益成熟,實(shí)體行業(yè)領(lǐng)域的轉(zhuǎn)型成為業(yè)績提升的關(guān)鍵。對(duì)于零售行業(yè)從業(yè)者,這意味著思維方式的自我進(jìn)化,對(duì)于消費(fèi)者,則意味著與產(chǎn)品產(chǎn)生新的連接,享受更加個(gè)性化、更具人情味...
閱讀 1255·2021-09-22 15:24
閱讀 2351·2019-08-30 15:44
閱讀 2730·2019-08-30 10:55
閱讀 3417·2019-08-29 13:25
閱讀 1710·2019-08-29 13:09
閱讀 1456·2019-08-26 14:05
閱讀 1480·2019-08-26 13:58
閱讀 2049·2019-08-26 11:57