這篇文章主要為大家展示了vue.js中如何使用微信掃一掃解決invalid signature問題,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
1、點擊按鈕,實現微信掃一掃功能:
<template> <a class="btn" @click="scan">掃一掃</a> </template>
2、使用config接口注入配置信息,wx.config調用方法如下:
(其中appId,timestamp,nonceStr,signature必須從后臺獲取,傳參當前網頁的URL,不包含#及其后面部分,location.href.split('#')[0]獲?。?/p>
wx.config({
debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
appId: '', // 必填,公眾號的唯一標識
timestamp: , // 必填,生成簽名的時間戳,精確到秒
nonceStr: '', // 必填,生成簽名的隨機串
signature: '',// 必填,簽名
jsApiList: [] // 必填,需要使用的JS接口列表,例如:['chooseImage','previewImage','uploadImage']
})3、通過ready接口處理成功驗證
wx.ready(function(){
// config信息驗證后會執行ready方法,所有接口調用都必須在config接口獲得結果之后,
config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對于用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中。
});4、完整代碼如下:
export default {
data() {
return {
}
},
methods: {
init(){
let url = location.href.split('#')[0];//這里的參數fullUrl是當前頁面的完整url(除去#后面部分)
this.$axios.get("/api/wx/jsdk/config",{params:{
url:url
}}).then(res => {
if(res.success){
window.wx.config({
debug: false,
appId: res.data.appId, // 必填,公眾號的唯一標識
timestamp: res.data.timeSpan, // 必填,生成簽名的時間戳
nonceStr: res.data.nonceStr, // 必填,生成簽名的隨機串
signature: res.data.sinature, // 必填,簽名
jsApiList: ['checkJsApi', 'scanQRCode'] // 必填,需要使用的JS接口列表
})
}else{
alert(res.msg);
}
})
},
scan(){
window.wx.ready(function() {
wx.checkJsApi({
jsApiList : ['scanQRCode'],
success : function(res) {
if (res.checkResult.scanQRCode === true) {
wx.scanQRCode({ // 微信掃一掃接口
needResult: 1, // 默認為0,掃描結果由微信處理,1則直接返回掃描結果,
scanType: ['qrCode', 'barCode'], // 可以指定掃二維碼還是一維碼,默認二者都有
success: function (res) {
let result = res.resultStr // 當needResult 為 1 時,掃碼返回的結果
window.location.href = result;//此處掃碼結果直接跳轉鏈接
}
})
} else {
alert('抱歉,當前客戶端版本不支持掃一掃')
}
},
fail: function (res) { // 檢測getNetworkType該功能失敗時處理
alert('fail' + res)
}
});
});
window.wx.error(function(res) {
alert("出錯了:" + res.errMsg);//這個地方的好處就是wx.config配置錯誤,會彈出窗口哪里錯誤,然后根據微信文檔查詢即可。
});
}
},
mounted() {
this.init();
}
}以上就是關于vue.js中如何使用微信掃一掃解決invalid signature問題的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。