vue 實現掃碼,獲取信息


------------恢復內容開始------------

vue 中安裝

cnpm install --save weixin-js-sdk

 

 

------------恢復內容結束------------

sao() {
let that = this;
// 點擊掃碼開始執行函數// 向后台請求
getWxConfig({
orgId: sessionStorage.getItem("orgId") || "1",
url: window.location.href.split("#")[0] // url必須是本頁面的地址
}).then(res => {
if (res.data.code == 1) {
let data = res.data.data;
var tiem = data.timestamp;
wx.config({
debug: false,
appId: data.appId, // 必填,公眾號的唯一標識
timestamp: data.timestamp, // 必填,生成簽名的時間戳
nonceStr: data.nonceStr, // 必填,生成簽名的隨機串
signature: data.signature, // 必填,簽名
jsApiList: ["scanQRCode", "checkJsApi"] // 必填,需要使用的JS接口列表
});
wx.error(function(res) {
alert("出錯了:" + res.errMsg); //這個地方的好處就是wx.config配置錯誤,會彈出窗口哪里錯誤,然后根據微信文檔查詢即可。
});

wx.ready(function() {
// config信息驗證成功后會執行ready方法,所有接口調用都必須在config接口獲得結果之后
// config 是一個客戶端的異步操作,所以如果需要在頁面加載時調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行.對於用戶觸發是才調用的接口,則可以直接調用,不需要放在ready函數中
wx.checkJsApi({
// 判斷當前客戶端版本是否支持指定JS接口
jsApiList: ["scanQRCode"],
success: function(res) {
// 以鍵值對的形式返回,可用true,不可用false。如:{"checkResult":{"scanQRCode":true},"errMsg":"checkJsApi:ok"}
if (res.checkResult.scanQRCode === true) {
wx.scanQRCode({
// 微信掃一掃接口
desc: "scanQRCode desc",
needResult: 1, // 默認為0,掃描結果由微信處理,1則直接返回掃描結果,
scanType: ["qrCode", "barCode"], // 可以指定掃二維碼還是一維碼,默認二者都有
success: function(res) {
if (res.resultStr.indexOf(",") > -1) {
that.patientCode = res.resultStr.split(",")[1];
} else {
that.patientCode = res.resultStr;
}
}
});
} else {
alert("抱歉,當前客戶端版本不支持掃一掃");
}
},
fail: function(res) {
// 檢測getNetworkType該功能失敗時處理
alert("檢測getNetworkType該功能失敗" + res);
}
});
});
/* 處理失敗驗證 */
wx.error(function(res) {
// config 信息驗證失敗會執行error函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數中查看,對於SPA可以在這里更新簽名
alert("配置驗證失敗: " + res.errMsg);
});
}
});
},


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM