随笔 - 89  文章 - 0  评论 - 2  阅读 - 11万 

调起扫一扫遇到的坑,签名失效。
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>
复制代码

 

posted on   我的梦想是开个小店  阅读(100)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示