在网页上点一个按钮或者链接调用微信扫一扫然后返回结果我们继续处理,很多人应该都会有这样的需求,不过微信对这个空子比较严格,需要你的网页有签名,而签名生成需要有一个微信公众号的appkey和APPsecret,然而要有这两项得注册个微信公众号,并且公众号还需要认证,认证的话每年300元,马化腾赚死了,认证下就要这么多少钱!
你以为交钱就完了吗?nonono这些都搞完了后还要进行一系列的设置,比如服务器白名单,回调域名,域名还得备案,如果你的是虚拟主机ip不定的话就麻烦大了,要稳定还得准备一台服务器可以是vps或者云主机,接下来才是编程!
对照微信开发文档调用几个接口,按照要求配置wx.config,那个该死的token还有jsspi这两个参数还会过期,7200秒后就失效,那么你就得考虑,我是在服务器上后台弄个程序定时刷新呢还是程序触发呢?如果是虚拟主机,那么我在哪儿弄个网页定时执行下这个网址呢?顿时头大了有么有?! 发现定时执行有弊端,有时挂了没执行没刷新呢,于是换另外一个方案,用户触发时候检查之前获取的参数有没有过期,硬着头皮按照文档一项项处理,结果一运行,wfk!一行行检查,修改,没问题了呀,可是为什么还是不行??!
于是你对微信开发产生了满满的恶意,微信开发是反人类的么?反程序员的么?不,这就是学习成本,其实大家都是这么过来的,所以呀,大家接项目别在白菜价了,你熬夜看视频看教程器敲代码练习、厚脸皮问大神各种问题大神让你百度、你不得不打发点红包。。。各种屈辱的难忘学习经历都忘了吗?这都是成本呀!
好了不罗嗦,直接上干货
只需要在你的网页中总加入代码:
<a hre f="http://sao315.com/w/api/saoyisao?redirect_uri=接收回调的url地址"> 扫二维码</a>
然后再接收回调页面的script块中插入
var qr=GetQueryString("qrresult"); if(qr){ //alert(qr); $("#result").html(qr); } function GetQueryString(name) { var reg = new RegExp("\\b"+ name +"=([^&]*)"); var r = location.href.match(reg); if (r!=null) return unescape(r[1]); }
上面获取到的qr的值就是微信扫码获取到的数据。