微信公众号调取扫一扫功能

1、先获取扫一扫信息进行授权

 // 扫一扫获取授权
      author_WX() {
      
        let url=window.location.href.split("#")[0];   //正确

      //调取后台接口 获取wx.config的配置信息
        getWeix({
          url: url,
        }).then(function (data) {
          console.log(data);
          if (data.code == "100") {
            var getWeixData = data.extend.jsArr;
            wx.config({
              debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
              appId: getWeixData[0], // 必填,公众号的唯一标识
              timestamp: getWeixData[2], // 必填,生成签名的时间戳
              nonceStr: getWeixData[1], // 必填,生成签名的随机串
              signature: getWeixData[4], // 必填,签名,见附录1
              jsApiList: ["scanQRCode"] // 必填,需要使用的JS接口列表,这里只说扫描,例如分享等都可以,只要写在数组里面就可以调用
            });
            //权限验证出错
            wx.error(function (res) {
              alert("出错了:" + res.errMsg);
            });
          }
        });

      },

 

2、扫一扫得到信息

      //扫码得到结果直接在页面显示
      scan() {
        let that = this;
        wx.ready(function () {
          wx.checkJsApi({
            jsApiList: ["scanQRCode"],
            success: function (res) {
              wx.scanQRCode({
                needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
                scanType: ["qrCode", "barCode"], //可以指定扫二维码还是一维码,默认二者都有
                success: function (res) {
                  var result = res.resultStr.split(",");
                  //为了区分苹果手机跟安卓手机返回的值  ios需要截取  安卓不用
                  that.order_no = result[1]? result[1]:result;
                  // Toast({
                  //   message: res.resultStr,
                  //   position: "middle",
                  //   duration: 5000
                  // });
                },
                error: function (err) {
                  alert("扫描失败::扫描码=" + err);
                }
              });
            }
          });
        });
      }

 

你可能感兴趣的:(js)