zoukankan      html  css  js  c++  java
  • 公众号调起微信扫一扫

    调起扫一扫遇到的坑,签名失效。
    1、获取后台接口签名时,一定要确保,后台处理将ticket和token进行缓存处理。
    2、动态参数url.获取方式:location.href.split('#')[0],一开始加了encodeURIComponent,但是验签还是失败,抱着试试的态度将他去掉了。结果成功了。
    <script type="text/javascript">
            var _appId ='当前公众号的appid';
            var openid="";
        $(function() {
            //需要把当前页面的url地址传到后台,生成签名信息时需要使用到。下面的地址是controller层调用当前页面的路径
            // //获取签名的后台接口
            openid = getUrlParam('openid');
            $(document).ready(function(){
                 //需要把当前页面的url地址传到后台,生成签名信息时需要使用到。下面的地址是controller层调用当前页面的路径
                //var tokenUrl= encodeURIComponent(location.href.split('#')[0]);
                var tokenUrl = location.href.split('#')[0];
                //获取签名
                $.ajax({
                    type:'post',
                    url: 'getCYPZGZHticket',
                    data: { 'url': tokenUrl },
                    success:function(res){
                        var json = $.parseJSON(res);
                        var code = json.info;
                        if(code !='1'){
                            error();
                        }else{
                            wx.config({
                                debug:false,// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                                appId: _appId,// 必填,公众号的唯一标识
                                timestamp: json.data.sjc,// 必填,生成签名的时间戳
                                nonceStr: json.data.noncestr,// 必填,生成签名的随机串
                                signature: json.data.sign,// 必填,签名,见附录1
                                jsApiList: ['checkJsApi','scanQRCode']
                                // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
                            });
                            wx.scanQRCode({
                                desc: 'scanQRCode desc',
                                needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
                                scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
                                success: function (res) {
                                    var url = res.resultStr;
                                    //拿到二维码的值进行处理操作
                                    uploadData(url);
                                }
                            });
                        }
                    }
                })
            })
            function uploadData(qrcode) {
                if (isEmpty(openid)) {
                    error();
                }else{
                    $.ajax({
                        url: 'uploadSYS',
                        data: { 'openid': openid,'qrval':qrcode },
                        success: function (res) {
                            var json = $.parseJSON(res);
                            var code = json.info;
                            if (code != '1') {
                                error();
                            } else {
                                ok();
                            }
                        },
                    })
                }
                
           }
    
    </script>
    

      

  • 相关阅读:
    公平锁和非公平锁
    读写锁StampedLock的思想
    线程工作窃取算法
    关于SQL注入的问题以及解决方法
    简单工厂模式、工厂模式和抽象工厂模式
    RestFul的无状态规则详解
    Identity Server 4 中文文档(v1.0.0) 目录
    第3章 支持和规范
    第2章 术语
    第1章 背景
  • 原文地址:https://www.cnblogs.com/syeacfpl/p/14885802.html
Copyright © 2011-2022 走看看