网页调用微信Jssdk实现扫一扫功能

1.微信公众号配置

第一步,JS接口安全域设置

image

第二步,配置ip白名单。

    换服务器的时候被坑了。。。一直报config:invalid signature,之前都是弄好的。后面忘了。
1533296873(1).jpg

2. 导入相关JS

在需要调用JS接口的页面引入如下JS文件,(支持https):[http://res.wx.qq.com/open/js/jweixin-1.2.0.js](http://res.wx.qq.com/open/js/jweixin-1.2.0.js)

3.通过config接口注入权限验证配置

var _data = {

  tokenUrl:location.href,

  t:Math.random()

};

var _getWechatSignUrl = HTTP_AUTH_HOST_SERVER+'czj/wx/XSign';

// 获取微信签名

$.ajax({

  url:_getWechatSignUrl,

  data:_data,

  dataType:"jsonp",

  success:function (o) {

        //alert('获取数据:timestamp:'+o.value.timestamp+'nonceStr:'+o.value.nonceStr+'signature:'+o.value.signature);

     console.log("获取微信签名:"+o);

  if (o.result ==true) {

    wxConfig(o.value.timestamp, o.value.nonceStr, o.value.signature,o.value.appId);

    console.log("appid:"+o.value.appId)

}

},err:function (err) {

      alert("----"+err);

}

});

function wxConfig(_timestamp, _nonceStr, _signature,_appId) {

     //alert('获取数据:'+_timestamp+'\n'+_nonceStr+'\n'+_signature);

    console.log('获取数据:' + _timestamp +'\n' + _nonceStr +'\n' + _signature);

  wx.config({

  debug:false,// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

        appId: _appId,// 必填,公众号的唯一标识

        timestamp: _timestamp,// 必填,生成签名的时间戳

        nonceStr: _nonceStr,// 必填,生成签名的随机串

        signature: _signature,// 必填,签名,见附录1

        jsApiList: ['checkJsApi','scanQRCode']

// 必填,需要使用的JS接口列表,所有JS接口列表见附录2

    });

}     

4.调起扫一扫接口

function scanCode(callback) {

  wx.scanQRCode({

  needResult:1,

  scanType: ["qrCode","barCode"],

  success:function (res) {

        console.log(res)

  //alert(JSON.stringify(res));

        var result = res.resultStr;

        setTimeout(callback(result),500);

   },

  error:function(res){

        alert(JSON.stringify(res))

        if(res.errMsg.indexOf('function_not_exist') >0){

        alert('版本过低请升级')

      }

    }

  });

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 最近接受了一个新的需求,希望制作一个基于微信的英语语音评价页面。即点击录音按钮,用户录音说出预设的英文,根据用户的...
    ReeCode阅读 9,248评论 7 15
  • 1. 准备工作 1.1 查看公众号分享接口权限 要使用微信SDK必须要有经过微信认证的非个人服务号 登陆服务号后,...
    sxplus阅读 6,433评论 0 2
  • 中学课本里,我们就接触了《我与地坛》,认识了史铁生。小时候的印象里,说到史铁生,立马蹦出来一词儿——身残志坚。这是...
    Call麦地儿阅读 494评论 0 1
  • 题目描述:给一个链表和一个值 x ,使得所有比 x 小的值都在比 x 大的值的结点前面,保持两部分的原始相对位置。...
    Nautilus1阅读 223评论 0 0