移动端的h5项目调用微信扫一扫功能,可参考微信官方文档“微信开发文档—公众号”中,调用扫一扫接口后 测试,这个是必须在手机上测试的。
微信授权
微信授权
(后端) 写一个接口给给前端,获取使用扫一扫功能的当前页url, 通过access_token获取jsapi_ticket,然后生成JS-SDK权限验证的签名
后端返回一下参数
appId: ‘公众号appid’,
timestamp: ‘ 时间戳 ’
nonceStr: ‘ 生成签名的随机串 ’
signature :‘签名’
调 “ 扫一扫 “
前端拿到以上参数,调用wx.config
wx.config({
debug: wxConfig.debug,
appId: wxConfig.appId,
timestamp: wxConfig.timestamp,
nonceStr: wxConfig.nonceStr,
signature: wxConfig.signature,
jsApiList: ['scanQRCode'],
});
wx.ready(() => { //通过ready接口处理成功验证
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
result = result.split(',')[1]; //处理返回的upcCode码
Toast.info(`扫码${result}`);
},
error: function (error) {
Toast.fail(error) }
})
});
wx.error(function (res) {
console.error(JSON.stringify(res));
Toast.fail('微信发生了错误!', 3);
});