我用js-sdk调用在微信公众号中调用微信扫一扫,扫一扫出不来,但是开发者工具中又是显示为配置对的?
发布于 6 年前 作者 klai 2011 次浏览 来自 问答

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);
        }
    });
});

打印出来的参数我也贴一下

  1. appId:wx8148352aa79f60c7
  2. jsApiList:“scanQRCode”
  3. nonceStr:baa72aa56ee542a5ba8cf61693e8b2fc
  4. signature:e327f68d71e03919737b3d45b198664d4e697985
  5. timestamp:1577411039

下面是我在微信开发工具里面答应出来的结果:

时间戳,随机字符串,还有签名上面都有 js-api 检查的结果也是ok ,config 的检查结果也是ok,但是扫一扫就是出不来,只在pc端的时候弹出来一个框,我就不知道为什么,麻烦知道原因的大佬或者官方人员看一下,感激不尽

2 回复

真机没反应是安卓还是iOS呢?

还是不行,打印结果如下

回到顶部