调起扫一扫遇到的坑,签名失效。
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>
分类:
小程序/公众号
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)