微信公众号扫二维码事件相关
-
用户扫描微信公众号生成的带参数的二维码,可能推送两种不同的事件到微信公众号填写的地址上
- 如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者
- 如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者
-
生成带参数的二维码接口
- url: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
- dataType:'json',
-
data:
{ "expire_seconds": 1800, // 有效时间 .以秒为单位。 最大不超过1800。 "action_name": "QR_SCENE", // 二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久 "action_info": {"scene": {"scene_id": 123}} //scene_id: 场景值ID,临时二维码时为32位非0整型, //永久二维码时最大值为100000(目前参数只支持1--100000) }
-
return :
{ "ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm3sUw==", "expire_seconds":60, "url":"http:\/\/weixin.qq.com\/q\/kZgfwMTm72WWPkovabbI" }
- 根据返回值ticket获取二维码
- url: https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET
- 注意:TICKET 记得 UrlEncode
- 实际应用:
- 账号绑定
- 二次登录
1 账号绑定
-
场景描述:用户扫描生成的二维码,自动把公众号对应的微信号的openid绑定到用户.
-
实现思路
- 因为生成带参数的二维码参数的限制为:临时二维码为32位非0整型,永久二维码是最大值100000
- 每一次生成为二维码之前在规定的参数范围内生成一个随机数
- 随机数作为生成二维码的参数(掉微信的api生成二维码..前面有提到)
- 把上一步生成的随机数作为key(当然key可以有前缀,后缀什么的.自己喜欢就好.就是这么任性
- 把一些有用的值比如:user_id,scan_type .(绑定账号)做为value 存到cache中.具体用什么自己喜欢就好.
- 当用户用微信扫描二维码,微信服务器会把参数推送到填好的开发者自己的url上.
- 在url 判断event 事件类型,然后获取到这个参数值(饶了一圈实际上就是上面生成的随机数)
- 上一步里面可以直接获取到用户对应这个公众号对应的openid
- 根据参数,总cache中获取到一个value,value里有user_id,scan_type (实际上放什么都行,你懂的.)
- 然后根据user_id,把openid 绑定到用户.
- 补充: 二维码可以设置失效时间,最好是失效时间跟cache的失效时间一致,(只是建议而已).
2 二次登录验证
- 场景描述 : 用户绑定过微信,在输入用户名,密码正确提交后,到一个中间页,中间页里面就一张二维码,用户微信扫描二维码,在跳转页面
- 实现思路
- 用户绑定过微信,假设用户表里有wx_openid字段
- 第一步用户输入用户名,密码登录成功
- 登录逻辑检验登录,校验成功,不要设置登录态
- 生成随机数作为key,{user_id:'1234',scan_type:'scan_login',login_result:false}做为value 存到cache中,
- 生成二维码,
- 用户扫描二维码,推送到自己的url上.根据key取value
- 根据value中的scan_type判断是scan_login 发现是二次登录操作
- 校验下user_id 对应用户的openid于上一步能获取到的openid是否一致
- 不一致说明是用了其他人的微信扫了二维码.显示不能登录
- 检验通过,设置 value中的login_result = true
- 重新设置cache中随机数作为key 的value
- 中间页(二维码页面),有一个长连接,或者短连接轮询,
- 这个请求只干一件事儿.请求会带上随机数,根据随机数去判断cache中value中login_result是否为true
- 为true 设置user_id的登录态 跳转页面
- 为false 继续轮询
- 补充: cache中key对应的value 可以放很多内容,比如错误提示,错误次数.等等.自己喜欢就好.
相关推荐
主要介绍了Java实现微信公众号获取临时二维码功能,结合实例形式分析了java调用微信公众号接口实现临时二维码生成功能相关操作技巧,需要的朋友可以参考下
微信公众号推广二维码源码 博文连接:https://blog.csdn.net/slx3320612540/article/details/88375918
第三步:每隔2秒检测是否关注微信公众号 通过微信openid和access_token获取微信用户信息,并存入表当中的信息 若是没有获取到数据,记得开启curl,检查防火墙、启用 微信服务器IP白名单设置 PHP扫码关注公众号更新...
微信群公众号二维码导航大全网站源码 带整站数据聚合SEO+手机版带伪静态
Python 生成仿微信公众号推广的个性二维码(支持动态)Python源码Python 生成仿微信公众号推广的个性二维码(支持动态)Python源码Python 生成仿微信公众号推广的个性二维码(支持动态)Python源码Python 生成仿微信...
1、使用jweixin-1.4.0.js实现微信公众号Html5页面调用手机照相机识别二维码 2、核心代码已经给到txt文件中,可以根据需要自行扩充。 3、二维码可以由自己的API生成,应用到很多领域。
微信公众号二维码
本工具运用在已知微信公众号的微信号,获取其公众号的二维码。
微信公众号二维码网站源码,有需要的可以了来下载!可以发布各种公众号二维码!
接入微信公众号是开发的第一步,万事开头难,走好第一步,后面的路就更宽广。 1.公众平台测试帐号的使用 登录微信公众平台,由于很多开发人员并没有认证的的微信公众号,所以比较折中的方式是使用公众平台测试帐号...
结合了express+request+config+wechat等模块,实现了获取微信二维码url地址和ticket,事件推送服务
资源名:asp微信公众号授权登陆程序源码 资源类型:程序源代码 源码说明: 基于asp编写的微信公众号授权登陆程序 包含完整的代码和注释 非常适合借鉴学习 适合人群:新手及有一定经验的开发人员
1.使用TBS Studio进行微信公众号真机调试扫描二维码报错无法安装线上TBS内核,原因是微信内置浏览器 x5内核以弃用升级到最新的xweb内核; 2.本方法是在最新版微信基础上真机公众号调试,手机电脑同屏利用浏览器的...
第一步:获取关注二维码ticket,并且传参二维码qrcode表主键id第二步:微信服务端接受数据,并且用户登录信息第三步:每隔2秒检测是否关注微信公众号 通过微信openid和access_token获取微信用户信息,并存入表当中的...
三合一类包 ...3、WechatAuth.class.php 封装了 微信消息及二维码类 可指定openid 发送消息 消息...几行代码实现微信公众号中你想要的功能,详细内容请参考:https://blog.csdn.net/qq_16024861/article/details/81510679
h5在微信内获取信息,配置微信公众号流程
1、服务器和微信的链接 2、图文回复消息 3、创建删除菜单 4、获取用户openid信息 5、客服发送消息 6、模板发送消息 7、参数二维码生成 8、扫描参数二维码接收参数和用户openid PS:代码仅供参考,需要在服务号上...
微信群微信公众号二维码导航网站源码带支付+WAP
C#微信公众号获取用户基本信息代码可用(asp.net),可以获取到用户信息的。
插件安装完成后进入后台文章编辑文本模式下可以看到有一个“插入微信隐藏标签”的按钮,选中需要隐藏的图文内容,然后点击该按钮则会自动为你添加上短代码,当然你也可以通过手动添加短代码的方式实现所选内容的隐藏...