• 微信公众号扫一扫接口


    步骤一:绑定域名

    步骤二:引入JS文件

      在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js 。(如需使用摇一摇周边功能,请引入 jweixin-1.1.0.js)

    步骤三:通过config接口注入权限验证配置

      所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。

    wx.config({
        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: '', // 必填,公众号的唯一标识
        timestamp: , // 必填,生成签名的时间戳
        nonceStr: '', // 必填,生成签名的随机串
        signature: '',// 必填,签名,见附录1
        jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    });
    $.ajax({
                    type: "post",
                    data: { r: Math.random(), func: '',cururl:'获取签名的页面地址' },
                    dataType: "json",
                    url: "一般处理页",
                    success: function (data) {
                        wx.config({
                            debug: false,
                            jsApiList: ['scanQRCode'],//要调用的微信接口
                            appId: data.appId,//微信开发者appId
                            timestamp: data.timpstamp,//后台生成的时间戳
                            nonceStr: data.noncestr,//随机字符串
                            signature: data.signature //后台生成的签名
                        });
                    }
                });

    步骤四:调起微信扫一扫接口  通过ready接口处理成功验证

    wx.ready(function(){
        // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
    });
    wx.ready(function () {
    document.querySelector('#scanQRCode').onclick = function () { wx.scanQRCode({ desc: 'scanQRCode desc', needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { var url = res.resultStr; alert(url); }, error: function (res) { alert('error'); } }); }; });

            放在wx.ready 里面的内容,会等到相关信息全部加载完毕后才可以被触发。如果用户引入的接口是需要点击才会调用的,则放不放在里面都无所谓。比如上面例子的接口是用来检验当前配置信息是否合法的,那么这个功能是不需要用户来点击的,当你打开网页时,自动就会调用该接口,那么它就必须放在ready里面。再比如我们打算调用的扫一扫,这个必须(最好是)是用户进入页面后点击某个按钮才触发,这么就不必放到ready里面。

            wx.scanQRCode({ XXX });,我们给他套上一个document.querySelector()。这个作用就是用户点击才会触发该事件。如果不套document,直接放在外面那么一旦进入该网页,系统就自动调用了接口。
    #scanQRCode这个值去掉#后,就是我们按钮的id,拥有该id的按钮即可调用接口。这个id是官方给的,不可以自己随意改。(<button id="scanQRCode" >扫描二维码</button> )

    参考文章:https://blog.csdn.net/u011327333/article/details/50439462

  • 相关阅读:
    今天没事做了个MBTI职业倾向测试
    Prototype 源码解读[资源]
    ◎◎identity ,ident_current() ,scope_identity的区别
    进军SharePoint,资料先行....
    这两天写了个分页控件,分享代码
    高效率的object转int的函数
    可填可选的DropDownList Server Control
    [DHTML]setInterval与setTimeout的区别
    提两个建议
    通过XSL template与import实现代码重用
  • 原文地址:https://www.cnblogs.com/JYuAn/p/8648725.html
Copyright © 2020-2023  润新知