1
0
Fork 0
5g-track/src/utils/WeChatScan.js

55 lines
2.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 微信扫一扫封装传入callback在扫码执行并接收一个code参数修改api即可
import wx from 'weixin-js-sdk'
import { GetScanParams } from 'api/admin'
import vm from '@/main.js'
export default function WeChatScan(callback){
GetScanParams(window.location.href.split('#')[0]).then(res => {
if(res.code === 0){
openScan(res.data,callback)
}else{
vm.$Toast.error('签名信息获取失败!')
}
}).catch(err => vm.$Toast.error('签名信息获取失败,请重试!'))
}
function openScan(data,callback){
wx.config({
debug: false, // 开启调试模式
appId: data.appid, // 公众号的唯一标识
timestamp: data.Timestamp, // 生成签名的时间戳
nonceStr: data.NonceStr, // 生成签名的随机串
signature: data.Signature, // 签名
jsApiList: [ 'scanQRCode' ] // 需要使用的JS接口列表
});
wx.ready(function () {
var isBack = callback
wx.checkJsApi({ // 判断当前客户端版本是否支持指定JS接口
jsApiList: [ 'scanQRCode' ],
success: function (res) { // 以键值对的形式返回可用true不可用false。如{"checkResult":{"scanQRCode":true},"errMsg":"checkJsApi:ok"}
if (res.checkResult.scanQRCode === true) {
wx.scanQRCode({ // 微信扫一扫接口
needResult: 1, // 默认为0扫描结果由微信处理1则直接返回扫描结果
scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
const getCode = res.resultStr // 当needResult 为 1 时,扫码返回的结果
isBack(getCode)
}
})
} else {
vm.$Toast.error('抱歉,当前客户端版本不支持扫一扫!')
}
},
fail: function (res) { // 检测getNetworkType该功能失败时处理
vm.$Toast.error('失败' + res)
}
})
})
/* 处理失败验证 */
wx.error(function (res) {
vm.$Toast.error('签名信息错误: ' + res.errMsg)
})
}