微信公众号消息与事件处理机制
一:授权事件接收URL
1:微信服务器每隔10分钟定时推送component_verify_ticket。
第三方平台方在收到ticket推送后也需进行解密
{ComponentVerifyTicket=ticket@@@fxUU8P4_ip5B-S1sBL2SHmfA24haZRIUR8QIs0jLRXNfg1iBm4Lmv_h3T6Pb3KoXhNm-MspBFXr1cpN7nMzWDA,
CreateTime=1453311619,
AppId=wx630d7795f554888e,
InfoType=component_verify_ticket}
将ticket存储到redis缓存中备用。(获取component_access_token的时候会用到)
2:取消授权:
{CreateTime=1456983869,AppId=wx630d7795f554888e,AuthorizerAppid=wx136a04a96a5a4315,InfoType=unauthorized}
update公众号的授权状态status = 0(微信公众号一件授权绑定的时候,设置状态status = 1)
二:公众号消息与事件接收URL
1:全网发布测试程序
2:粉丝留言
(1)文本消息MsgType=text
<xml><ToUserName><![CDATA[gh_55a07f02b729]]></ToUserName>
<FromUserName><![CDATA[oPL3EwABb3O9FlyYqrEq8s60XQHM]]></FromUserName>
<CreateTime>1453324217</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[ 80507050055]]></Content>
<MsgId>6241979982901678088</MsgId>
</xml>
解密后:
{"ToUserName":"gh_55a07f02b729",
"FromUserName":"oPL3EwABb3O9FlyYqrEq8s60XQHM",
"CreateTime":"1453324217",
"MsgType":"text",
"MsgId":"6241979982901678088",
"Content":" 80507050055"}
(2)图片消息MsgType=image
<xml><ToUserName><![CDATA[gh_75bd42c76810]]></ToUserName>
<FromUserName><![CDATA[oL2tEsy80dteCTC3s2N-oJ29FzvQ]]></FromUserName>
<CreateTime>1458022782</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<PicUrl><![CDATA[http://mmbiz.qpic.cn/mmbiz/RFKb8DPbIRaHLYwvIP42gmxCn9BibXIibAWurGWNxhVNIv9QPiaTgSjoURLvEhEmibyUmpn3Iejd2iarqFxNEibiazicjA/0]]></PicUrl>
<MsgId>6262160165914921281</MsgId>
<MediaId><![CDATA[N140xMpjGKediJdR3YnDl18lkhrGms3nMjw2_5N3IL_bgssG-EHwLVLK3_YrrjY-]]></MediaId>
</xml>
解密后:
{"ToUserName":"gh_75bd42c76810",
"FromUserName":"oL2tEsy80dteCTC3s2N-oJ29FzvQ",
"CreateTime":"1458022782",
"MsgType":"image",
"MsgId":"6262160165914921281",
"PicUrl":"http://mmbiz.qpic.cn/mmbiz/RFKb8DPbIRaHLYwvIP42gmxCn9BibXIibAWurGWNxhVNIv9QPiaTgSjoURLvEhEmibyUmpn3Iejd2iarqFxNEibiazicjA/0",
"MediaId":"N140xMpjGKediJdR3YnDl18lkhrGms3nMjw2_5N3IL_bgssG-EHwLVLK3_YrrjY-"}
(3)语音MsgType=voice
(4)视频MsgType=shortvideo
3:微信菜单点击事件Event=CLICK
<xml><ToUserName><![CDATA[gh_8564206f6175]]></ToUserName>
<FromUserName><![CDATA[oll5DuPVHrhwgXiL6O8_UjxWx9EQ]]></FromUserName>
<CreateTime>1453312109</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[CLICK]]></Event>
<EventKey><![CDATA[63_82cceb50702b4ebba1ce7d823f7ec6c5]]></EventKey>
</xml>
解密后:
{"ToUserName":"gh_8564206f6175",
"FromUserName":"oll5DuPVHrhwgXiL6O8_UjxWx9EQ",
"CreateTime":"1453312109",
"MsgType":"event",
"Event":"CLICK",
"EventKey":"63_82cceb50702b4ebba1ce7d823f7ec6c5"}
4:微信菜单点击事件Event=VIEW
<xml><ToUserName><![CDATA[gh_1b519a1f5ff0]]></ToUserName>
<FromUserName><![CDATA[oHRogs1ZP_VfEkRK3wbzC0d4hJ1A]]></FromUserName>
<CreateTime>1453313107</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[http://www.zhilangedu.cn:80/questionnaire/view/wxlistVote.shtml?accountid=68]]></EventKey>
<MenuId>403098247</MenuId>
</xml>
解密后:
{"ToUserName":"gh_1b519a1f5ff0",
"FromUserName":"oHRogs1ZP_VfEkRK3wbzC0d4hJ1A",
"CreateTime":"1453313107",
"MsgType":"event","Event":"VIEW",
"EventKey":"http://www.zhilangedu.cn:80/questionnaire/view/wxlistVote.shtml?accountid\u003d68"}
5:粉丝关注 eventType=subscribe
<xml><ToUserName><![CDATA[gh_8564206f6175]]></ToUserName>
<FromUserName><![CDATA[oll5DuOb01gBsgoAFoPAevsnxcCg]]></FromUserName>
<CreateTime>1453312687</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[]]></EventKey>
</xml>
解密后:
{"ToUserName":"gh_8564206f6175",
"FromUserName":"oll5DuOb01gBsgoAFoPAevsnxcCg",
"CreateTime":"1453312687",
"MsgType":"event",
"Event":"subscribe",
"EventKey":""}
获取FromUserName = oll5DuOb01gBsgoAFoPAevsnxcCg(即openId,根据openId调用微信接口就可以获取粉丝的详细信息,然后将粉丝信息持久化到本地数据库)
6:粉丝取消关注 eventType=unsubscribe
<xml><ToUserName><![CDATA[gh_8713b6f91735]]></ToUserName>
<FromUserName><![CDATA[oL0_ut6qys6lr2HNoow_yirdIc_A]]></FromUserName>
<CreateTime>1453336420</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[unsubscribe]]></Event>
<EventKey><![CDATA[]]></EventKey>
</xml>
解密后:
{"ToUserName":"gh_8713b6f91735",
"FromUserName":"oL0_ut6qys6lr2HNoow_yirdIc_A",
"CreateTime":"1453336420",
"MsgType":"event",
"Event":"unsubscribe","EventKey":""}
获取FromUserName = oL0_ut6qys6lr2HNoow_yirdIc_A(即openId,根据openId可以将粉丝从本地数据库删除)
7:微信认证成功:
<xml><ToUserName><![CDATA[gh_75bd42c76810]]></ToUserName>
<FromUserName><![CDATA[oL2tEs-jwoo3QAq7Tkbm5wAgqY3s]]></FromUserName>
<CreateTime>1457841364</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[qualification_verify_success]]></Event>
<ExpiredTime>1489377364</ExpiredTime>
</xml>
解密后:
{"ToUserName":"gh_75bd42c76810",
"FromUserName":"oL2tEs-jwoo3QAq7Tkbm5wAgqY3s",
"CreateTime":"1457841364",
"MsgType":"event","Event":"qualification_verify_success"}
eventType=qualification_verify_success
update公众号的认证状态verifytypeinfo = 0(如果公众号没有微信认证的话,verifytypeinfo = -1)
微信公众号消息与事件处理机制相关推荐
- java 微信群发多图文_[Java教程]httpClient实现微信公众号消息群发
[Java教程]httpClient实现微信公众号消息群发 0 2016-09-21 20:00:10 1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信ope ...
- 微信公众号消息模板发送
微信公众号消息模板发送 微信公众号消息模板群发功能 开通申请模板消息功能 获取模板消息发送所需参数 AccessToken pojo类 TemplateData pojo类 WxTagsEntity ...
- 微信公众号消息增加跳转链接
微信公众号消息增加跳转链接 背景: 用户在首次关注公众号后会弹出一条欢迎消息.给这条消息增加跳转的链接,使得用户在点击之后可以跳转 到一个你希望用户访问的页面. 解决方案: 根据微信开发者文档,找到了 ...
- 微信公众号消息通知手把手教程
项目需求:微信公众号消息推送 首先你需要我给你提供以下地址 方便你进行开发 准备阶段: a 模版消息推送开发文档 链接 b 微信公众号测试号地址 链接 c 微信公众平台接口调试工具 链接 ...
- 微信公众号消息推送开发(模板消息):点击推送消息跳转到网页或者小程序(三)
需求场景: 点击推送的消息后跳转到小程序中的某个页面,或者跳转到某一个网页上,例如有这样一个需求,在商城平台购买产品后,需要通过公众号给用户推送订单详细并且点击消息可以看到对应的订单详情.以下我将在微 ...
- 【监听微信公众号消息】
监听微信公众号消息 效果图如下: 环境要求 效果图如下: 环境要求 需要windows服务器,登陆上微信.获取到的消息是xml格式,需要解析内容获取自己想要的公众号推送的消息. 详情:https:// ...
- 微信公众号消息推送-模板消息发送
先注册一个微信公众号;或者申请接口测试号来进行开发: 接口测试号申请链接: https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login ...
- 微信公众号--消息回复
消息回复 使用微信进行接口实现消息自动回复,要在微信公众号中进行服务器配置和编写对应的服务器代码响应微信端的请求. 服务器配置 l 公众平台官网登录之后,找到"基本配置"菜单栏 ...
- 微信公众号消息模板开发
为什么80%的码农都做不了架构师?>>> ##背景 新需求,需要在订单的时候给用户,商家,配送员发送想对于的微信消息模板,之前没有做过微信公众号相关的开发,这次就一并熟悉吧 # ...
最新文章
- ssh调用expect使用以及shell同时传入两个参数调用
- java中wait和notify的虚假唤醒问题
- delphi 的一些备忘
- java 最优化_java-多维度求最优解
- 行业最大!黑鲨5系列将搭载5320mm²双VC散热:冰封骁龙8
- hihoCoder-1038- 01背包(dp)
- 用Python快速找到出现次数最多的数据
- 胎压监测 (15 分)
- select选中值传递到后台action中
- 概率论总结(《概率论与数理统计》第四版 浙江大学)
- ERP项目学习(一)
- Appium移动端自动化测试--搭建模拟器和真机环境一
- 牡丹的冬季修剪及管理方法
- 常见编程代码命名风格
- 央企招聘:国家水利部直属单位2023公开招聘
- linux系统切换输入法,linux系统切换输入法
- 高速电路中电容的选型和应用——详解
- 财险商闭口不提交强险利润
- Windows开发之——Win10开机启动及启动设置
- 高中信息技术python及答案_高中信息技术《Python语言》模块试卷.docx