成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

vue.js 在微信JS-SDK中分享、微信支付、掃一掃等簽名失效的解決

keithxiaoy / 2107人閱讀

摘要:處理自己的邏輯四重點(diǎn)來(lái)了,解決微信無(wú)效的問(wèn)題使用的網(wǎng)友都知道,路由上帶有做路由的跳轉(zhuǎn),而在發(fā)過(guò)去做微信驗(yàn)證的的時(shí)候,會(huì)被干掉,最終導(dǎo)致簽名無(wú)效。

一,先登陸微信公眾號(hào)后臺(tái)綁定js安全域名,不需要加http或https,詳情百度。 二、信公眾號(hào)后臺(tái)設(shè)置服務(wù)器的IP為白名單,否則無(wú)法獲取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)前路徑,注意路徑一般不能寫(xiě)死,請(qǐng)求簽名的路徑和最終調(diào)取wx-sdk路徑必須一致。
              }
          }).then(function (res) {
              let sign = res.data.data;//后端返回的微信的數(shù)據(jù)
              wx.config({
                  debug: true, // 開(kāi)啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來(lái),若要查看傳入的參數(shù),可以在pc端打開(kāi),參數(shù)信息會(huì)通過(guò)log打出,僅在pc端時(shí)才會(huì)打印。
                  appId: sign.appId, // 必填,公眾號(hào)的唯一標(biāo)識(shí)
                  timestamp: sign.timestamp, // 必填,生成簽名的時(shí)間戳
                  nonceStr: sign.nonceStr, // 必填,生成簽名的隨機(jī)串
                  signature: sign.signature, // 必填,簽名,見(jiàn)附錄1
                  jsApiList: [
                      "onMenuShareTimeline",
                      "onMenuShareAppMessage",
                      "hideMenuItems",
                      "showMenuItems",
                      "showAllNonBaseMenuItem",
                      "hideAllNonBaseMenuItem",
                      "startRecord",
                      "stopRecord",
                      "onVoiceRecordEnd",
                      "uploadVoice",
                      "downloadVoice",
                      "playVoice",
                      "onVoicePlayEnd",
                      "pauseVoice",
                      "stopVoice",
                      "openLocation",
                      "getLocation",
                      "chooseWXPay",
                      "onMenuShareQQ",
                      "scanQRCode",
                  ], // 必填,需要使用的JS接口列表,所有JS接口列表見(jiàn)附錄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)來(lái)了,解決微信signature無(wú)效的問(wèn)題

使用vue-router的網(wǎng)友都知道,路由上帶有#做路由的跳轉(zhuǎn),而#在發(fā)過(guò)去做微信驗(yàn)證的signature的時(shí)候,#會(huì)被干掉,最終導(dǎo)致簽名無(wú)效。例如你的路徑是 www.a.com/#/scan 拿去簽名,#被干掉以后,你使用www.a.com/#/scan,做wx.config signature是無(wú)效的。很多人都知道要使用vue的history模式。
// 路由配置

const RouterConfig = {
    mode: "history",
    routes: routers
};

例如你的域名是www.a.com,你的文件部署在根目錄下,首頁(yè)正常訪問(wèn),使用頁(yè)面內(nèi)部調(diào)整路由,如菜單等,沒(méi)問(wèn)題。但是一旦你直接訪問(wèn)www.a.com/scan,或者從首頁(yè)菜單跳轉(zhuǎn)到www.a.com/sacn然后刷新本頁(yè),你會(huì)發(fā)現(xiàn)返回404。
以下以nginx為例分析這個(gè)問(wèn)題,你訪問(wèn)www.a.com,nginx請(qǐng)求到根目錄下index.html,沒(méi)問(wèn)題,頁(yè)面上使用菜單做跳轉(zhuǎn)頁(yè)沒(méi)問(wèn)題,但是一旦你直接訪問(wèn)www.a.com/scan,或者刷新www.a.com/scan,nginx找不到scan這個(gè)文件夾,所以返回404
so,配置 mode: "history",還需要nginx配置配合。訪問(wèn)不到文件夾的時(shí)候,

location / {
            if (!-e $request_filename){
                rewrite ^/(.*) /index.html last;
            }
          }

直接回到你的index.html并把參數(shù)帶回來(lái)。解決所有問(wèn)題

如果你的項(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://systransis.cn/yun/96568.html

相關(guān)文章

  • vue.js 微信JS-SDK中分、微信支付掃一掃等簽名失效解決

    摘要:處理自己的邏輯四重點(diǎn)來(lái)了,解決微信無(wú)效的問(wèn)題使用的網(wǎng)友都知道,路由上帶有做路由的跳轉(zhuǎn),而在發(fā)過(guò)去做微信驗(yàn)證的的時(shí)候,會(huì)被干掉,最終導(dǎo)致簽名無(wú)效。 一,先登陸微信公眾號(hào)后臺(tái)綁定js安全域名,不需要加http或https,詳情百度。 二、信公眾號(hào)后臺(tái)設(shè)置服務(wù)器的IP為白名單,否則無(wú)法獲取access_token,詳情百度 三、引入wx-js-sdk 1.使用script標(biāo)簽 http://...

    jay_tian 評(píng)論0 收藏0
  • vue.js 微信JS-SDK中分、微信支付掃一掃等簽名失效解決

    摘要:處理自己的邏輯四重點(diǎn)來(lái)了,解決微信無(wú)效的問(wèn)題使用的網(wǎng)友都知道,路由上帶有做路由的跳轉(zhuǎn),而在發(fā)過(guò)去做微信驗(yàn)證的的時(shí)候,會(huì)被干掉,最終導(dǎo)致簽名無(wú)效。 一,先登陸微信公眾號(hào)后臺(tái)綁定js安全域名,不需要加http或https,詳情百度。 二、信公眾號(hào)后臺(tái)設(shè)置服務(wù)器的IP為白名單,否則無(wú)法獲取access_token,詳情百度 三、引入wx-js-sdk 1.使用script標(biāo)簽 http://...

    付永剛 評(píng)論0 收藏0
  • 如何正確在項(xiàng)目中接入微信JS-SDK

    摘要:進(jìn)過(guò)下面的步驟,一步一步的配置,就可以讓你正確的在項(xiàng)目中引入微信的。在進(jìn)行了正確的微信文件引入后看上面在頁(yè)面中調(diào)用如下代碼就可以注入權(quán)限驗(yàn)證配置。可以通過(guò)微信提供的兩個(gè)接口來(lái)進(jìn)行事件回調(diào)。到這為止,微信的接入就完成了。 微信JS-SDK的功能 如果你點(diǎn)進(jìn)來(lái),那么我相信你應(yīng)該知道微信的JS-SDK可以用來(lái)做什么了。微信的官方文檔描述如下。 微信JS-SDK是微信公眾平臺(tái)面向網(wǎng)頁(yè)開(kāi)發(fā)者提供...

    ivyzhang 評(píng)論0 收藏0
  • 行業(yè)log | 小程序搭載智慧零售,實(shí)現(xiàn)五位一體數(shù)字化營(yíng)銷

    摘要:零售商家通過(guò)微信支付小程序?qū)崿F(xiàn)線上線下消費(fèi)一體化,通過(guò)線上支付線下單品完成商品數(shù)據(jù)的打通。因此小程序搭載智慧零售,能助力商家實(shí)現(xiàn)消費(fèi)場(chǎng)景數(shù)字化以及購(gòu)買行為具象化,從新的維度提高用戶服務(wù)水平。 隨著移動(dòng)互聯(lián)網(wǎng)、大數(shù)據(jù)、AI等技術(shù)日益成熟,實(shí)體行業(yè)領(lǐng)域的轉(zhuǎn)型成為業(yè)績(jī)提升的關(guān)鍵。對(duì)于零售行業(yè)從業(yè)者,這意味著思維方式的自我進(jìn)化,對(duì)于消費(fèi)者,則意味著與產(chǎn)品產(chǎn)生新的連接,享受更加個(gè)性化、更具人情味...

    mzlogin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<