菜单事件推送在微信公众号开发中也是属于比较常用的一个功能,就是用户点击菜单之后,微信会将事件推送给接口程序。
不过微信开发到现在也是老生常谈的的东西了,我就简单写一下菜单事件推送的这个过程。
注意:点击菜单弹出子菜单,不会产生请求交互。

1.先来看下相应的接口参数及说明
参数 描述
ToUserName 开发者微信号
FromUserNamer 发送方帐号(OpenID)
CreateTime 消息创建时间 (整型)
MsgType 消息类型,event
Event 事件类型,CLICK
EventKey 事件KEY值,与自定义菜单接口中KEY值对应
MenuID 指菜单ID

后面还有一些参数,在这里就不一一列举了。是一些关于扫码事件,拍照时间, 地理位置等等的参数信息。

2.举例两种菜单推送事件的XML数据包
2.1按钮类型为view的菜单点击事件推送的XML数据包
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[blog.csdn.net/gu_wen_jie]]></EventKey>
<MenuId>87654321</MenuId>
</xml>
2.2点击用户点击自定义菜单后推送的XML数据包
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[CLICK]]></Event>
<EventKey><![CDATA[blog]]></EventKey>
</xml>
3.消息分离后菜单点击事件处理

在这里直接写响应之后的代码,也就是接收事件消息后的处理

private function receiveEvent($object)
{$content = "";switch ($object->Event){case "subscribe":break;case "unsubscribe":break;case "CLICK":switch ($object->EventKey){case "blog"://匹配到自定义菜单的额key值之后进行事件实力//$this->clickBlog();//...break;default:$content = "用户".$object->FromUserNamer."点击菜单:".$object->EventKey;break;}break;case "VIEW":break;default:break;}}

在这里注意, $object 基本就是推送事件的XML数据包,里面有很重的信息,比如 $object->FromUserNamer 其实就是openID ,有了这个openID你可以拿到用户数据进行接下来的逻辑处理。
关于本篇如有问题请留言~~~

微信公众号开发-菜单事件推送相关推荐

  1. 微信公众号开发-----接送事件推送之关注/取消关注

    本文主要实现的功能包括 关注/取消关注事件 阅读本文之前请先认真阅读微信公众号技术文档之接受事件推送 需注意的是:验证消息的确来自微信服务器和接收事件时微信服务器都会发送请求到填写的服务器地址URL上 ...

  2. 微信公众号开发(消息推送)

    文章目录 微信公众号开发 运行效果 微信公众号简介 注册微信公众号 注册测试公众号 搭建微信本地调试环境 微信公众号接入(校验签名) 给指定用户推送消息 网页授权获取用户openid 给指定用户发送模 ...

  3. php公众号开发关注事件推送图文_PHP_微信公众平台开发关注及取消关注事件的方法,本文实例讲述了微信公众平台 - phpStudy...

    微信公众平台开发关注及取消关注事件的方法 本文实例讲述了微信公众平台开发关注及取消关注事件的方法.分享给大家供大家参考.具体分析如下: 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的 ...

  4. 微信公众号自定义菜单和推送模板消息

    1.微信公众号测试账号: 找到服务号的开发文档,点击进去. Java代码: 准备工作: (1)填写JS接口安全域名 (2)填写接口配置信息: (2)java的Token验证接口 @RequestMap ...

  5. wechat-0022,微信公众号,接收事件推送

    demo:https://github.com/wenrongyao/wechat-demo 摘要:在0020中,我们已经可以接收用户发送的文本消息,并回复文本消息了,对于公众号还有另一类交互方式就是 ...

  6. 微信公众号开发之关注推送图文消息

    关注/取消关注事件 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL.方便开发者给用户下发欢迎消息或者做帐号的解绑. 微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总 ...

  7. 微信公众号(测试号)消息模板推送

    微信公众号(测试号)消息模板推送 源码地址 https://github.com/panjianlong13/Weixin-PushMessage 微信测试号配置 登录到微信公众平台接口测试账号申请U ...

  8. PHP微信公众号——消息接受与推送

    这里我们就来学习下怎么处理处理这些消息,以及推送消息. 学习之前首先你需要有一个域名和空间 url:填写你希望微信公众平台把用户的消息转发到哪里 token:随便输入,用于微信公众平台和你的站点进行第 ...

  9. 走进微信公众号实现关注之后推送一条服务器自定义的消息给用户

    下面是tp3.2实现的代码: <?php namespace Home\Controller; use Think\Controller; class IndexController exten ...

最新文章

  1. python编程语言的缺点-常见的AI编程语言优缺点比较,程序员千万不要入错行!...
  2. win10系统下多python版本部署
  3. Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略
  4. 诺依曼体系结构、哈佛体系结构与改进型哈佛结构之间的区别
  5. 文件循环读取_一个案例轻松认识Python文件处理提取文件中的数字
  6. html频谱跳动效果,HTML5音频可视化频谱跳动代码
  7. Linux Kernel Git国内镜像源
  8. 红橙Darren视频笔记 面试题 为什么view获取宽高为0 onCreate onResume view.post源码浅析(继承activity api27)
  9. 【Linux使用】Centos 7设置时区与时钟(chrony / ntp /systemd)
  10. mongodb连接池 php,node.js,mongodb_nodejs使用mongodb连接池,node.js,mongodb - phpStudy
  11. Hive SQL开窗函数详解
  12. 大数据分析技术有什么特点
  13. 产品新创意,创意产品原型大公开,原来可以这样做!
  14. 罗技无线网卡linux,Linux Kernel 5.2将改进对Logitech无线设备的支持
  15. 免费的播放器软件--mpv
  16. Java Script 秒表计时器 ( 源码 + 分析 )
  17. JAVA看云判断天气_怎样看云判断天气变化?
  18. zdm各命令的功能和作用_ZDM快捷键大全专业功能类
  19. 应聘必看——75道逻辑题答案
  20. linux之常用指令的英文全称 、中文解释

热门文章

  1. 讯搜安装报错You need a working C++ compiler to compile Xapian
  2. python爬虫模块排名_Python爬虫使用lxml模块爬取豆瓣读书排行榜并分析
  3. 艾兰岛编辑器-设置旋转效果
  4. 手把手教你用数据分析帮女神学姐选婚房
  5. 今天是值得纪念的一天!
  6. 此“备忘录”和彼备忘录一样吗?
  7. HCIP-Routing Switching V2.5--OSPF
  8. python字典一键多值如何遍历_[宜配屋]听图阁
  9. 同样协调个事情,为什么有人一说就通,有人一说就炸?(转,知乎)
  10. 前端、vue、Vue3弹幕实现;前端CSS实现弹幕