收藏
回答

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

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

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


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

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



回答关注问题邀请回答
收藏

3 个回答

  • 守望碎想
    守望碎想
    2020-07-22

    亲,我也出现了这个问题,你怎么解决的

    2020-07-22
    有用
    回复 1
    • 我
      2020-12-11
      资源路径和实际的url不一样,我是用iframe 嵌套了页面,里面的url 和外面的url 不一样,把iframe 去掉就可以了
      2020-12-11
      回复
  • 我
    2019-12-27

    还是不行,打印结果如下

    2019-12-27
    有用
    回复
  • 是小白啊
    是小白啊
    2019-12-27

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

    2019-12-27
    有用
    回复 7
    • 我
      2019-12-27
      安卓,小米mix3
      2019-12-27
      回复
    • 我
      2019-12-27
      微信是7.0.9版本
      2019-12-27
      回复
    • 是小白啊
      是小白啊
      2019-12-27回复
      不要alert,打印日志试试
      2019-12-27
      回复
    • 我
      2019-12-27
      还是不行
      2019-12-27
      回复
    • 我
      2019-12-27
      打印出来的结果在楼下,您看一下
      2019-12-27
      回复
    查看更多(2)
登录 后发表内容
问题标签