我用js-sdk调用在微信公众号中调用微信扫一扫,扫一扫出不来,但是开发者工具中又是显示为配置对的?
api 为 js-sdk
调用的js 为 http://res.wx.qq.com/open/js/jweixin-1.4.0.js
前台调用js的代码如下:
var timestamp = "";
var nonceStr = "";
var signature = "";
$(function () {
console.info("url:" + location.href.split('#')[0]);
$.ajax({
type: 'POST',
async: false,
url: "${path}/getWxConfig",
success: function (data) {
timestamp = data.wxConfig.timestamp; // 从后台获取到的时间戳
nonceStr = data.wxConfig.nonceStr; //随机字符串
signature = data.wxConfig.signature; //签名
}
});
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: "wx8148352aa79f60c7", // 必填,公众号的唯一标识
timestamp: timestamp, // 必填,生成签名的时间戳
nonceStr: nonceStr, // 必填,生成签名的随机串
signature: signature,// 必填,签名,见附录1
jsApiList: ['scanQRCode'] // 我需要扫描二维码
});
wx.ready(function () {
console.info("wx.ready:"); //这句话在控制台打印出来了
wx.checkJsApi({ //这个配置检查也是显示正确
jsApiList: ['scanQRCode'], //检查是否有扫描有二维码权限
success: function (res) {
}
});
wx.scanQRCode({ //这个东西只在pc端弹出一个框说"扫描结果在这",但是扫一扫并没有出来
needResult: 1,
scanType: ["qrCode"],
success: function (res) {
console.log(res)
//扫描返回的数据
var result = res.resultStr;
alert(result)
},
fail: function (res) {
alert("res:" + res);
}
});
});
wx.error(function (res) {
console.info("wx.error:" + res.errMsg);
});
});
$("#train_signStatus").click(function () {
wx.scanQRCode({
needResult: 1,
scanType: ["qrCode"],
success: function (res) {
console.log(res)
//扫描返回的数据
var result = res.resultStr;
alert(result)
},
fail: function (res) {
alert("res:" + res);
}
});
});
打印出来的参数我也贴一下
- appId:wx8148352aa79f60c7
- jsApiList:“scanQRCode”
- nonceStr:baa72aa56ee542a5ba8cf61693e8b2fc
- signature:e327f68d71e03919737b3d45b198664d4e697985
- timestamp:1577411039
下面是我在微信开发工具里面答应出来的结果:
时间戳,随机字符串,还有签名上面都有 js-api 检查的结果也是ok ,config 的检查结果也是ok,但是扫一扫就是出不来,只在pc端的时候弹出来一个框,我就不知道为什么,麻烦知道原因的大佬或者官方人员看一下,感激不尽