# 微信二维码关注事件推送 **Repository Path**: kuonoDio/weChartSubscribe ## Basic Information - **Project Name**: 微信二维码关注事件推送 - **Description**: No description available - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-17 - **Last Updated**: 2021-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##微信带参数二维码关注事件 ###流程 1. 配置服务器地址 1. 生成带参数的二维码 1. 接收微信的推送消息 ####配置服务器地址 [文档地址](https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html) 根据文档配置即可,测试时服务器可用natapp, ngrok被微信屏蔽了 在配置时,微信会直接访问服务器的域名进行验签,所以要写一个接口来响应它,请查看类:com.unidentifiable.wechat.controller.SubscribeController。 其中verification方法就是用来响应微信验签的。 ####生成带参数的二维码 [文档地址](https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html) 带参数的二维码分为临时和永久,下面为临时二维码样例: **地址:** https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=token **参数:** ```` { "expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": { "scene": { "scene_str": "my_params" } } } ```` **参数说明:** expire_seconds 过期时间 秒 最大30天 action_name 二维码类型,QR_SCENE为临时的整型参数值,QR_STR_SCENE为临时的字符串参数值,QR_LIMIT_SCENE为永久的整型参数值,QR_LIMIT_STR_SCENE为永久的字符串参数值 scene_str 场景值id(字符串型式) **返回:** ```` { "ticket": "gQF87zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyenFOMEpqVlZlRUQxb19ycTF3Y3YAAgS-YFFgAwSAOgkA", "expire_seconds": 604800, "url": "http://weixin.qq.com/q/02zqN0JjVVeED1o_rq1wcv" } ```` ticket 用于换取二维码图片 expire_seconds 超时时间 url 二维码地址,可用二维码生成工具生成二维码 **直接获取二维码** https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET ####接收微信的消息推送 [文档地址](https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html) 对应的接口: com.unidentifiable.wechat.controller.SubscribeController类的subscribeEvent方法 **未关注用户扫描二维码关注时,微信的推送:** ```` { "Ticket": "gQF87zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyenFOMEpqVlZlRUQxb19ycTF3Y3YAAgS-YFFgAwSAOgkA", "CreateTime": "1615949237", "EventKey": "qrscene_my_params", "Event": "subscribe", "ToUserName": "gh_c2d71261c3d1", "FromUserName": "o-bmo5_6IhLhJSohkU1oCb19N9RQ", "MsgType": "event" } ```` **参数说明** FromUserName openId EventKey 二维码带的参数,qrscene_为前缀,前缀后就是实际的参数值 **已经关注的用户扫描二维码** ```` { "Ticket": "gQF87zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyenFOMEpqVlZlRUQxb19ycTF3Y3YAAgS-YFFgAwSAOgkA", "CreateTime": "1615949426", "EventKey": "my_params", "Event": "SCAN", "ToUserName": "gh_c2d71261c3d1", "FromUserName": "o-bmo5_6IhLhJSohkU1oCb19N9RQ", "MsgType": "event" } ```` **参数说明** 和上面一样的,只是EventKey没有前缀了,以及Event变了,可以用Event来判断是否需要裁剪前缀 ###相关工具 测试号工具 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 接口调用测试工具 https://mp.weixin.qq.com/debug/