1.发现
之前已经讨论过如何过滤微信推送的事件消息和普通消息,今天查看线上微信接口推送事件日志发现有重复消息,在系统没有高负载的情况下,这是基本不可能出现的情况。
再看一遍微信公众号开发文档的排重建议
微信公众号开发文档 写道
用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。
微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
关于重试的消息排重,推荐使用FromUserName + CreateTime 排重。
假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。
微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
关于重试的消息排重,推荐使用FromUserName + CreateTime 排重。
假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。
系统打印的重复消息内容为(星号是马赛克):
{FromUserName=oIh7bvukj**********ZvcAIDug, EventKey=https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx2ce10f858dd547eb&redirect_uri=http%3A%2F%2Fwechat.hitumedia.com%2Fhituwechat%2FshakeshakePage.action&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect, Event=VIEW, CreateTime=1452742113, MenuId=401850190, ToUserName=gh_********df, MsgType=event}
2.排查
此为事件消息,我用的是FromUserName + CreateTime 排重,如果该消息重复,数据库中必定有了相同FromUserName + CreateTime 的记录,查了事件日志数据表,结果一目了然:
3.分析原因
我们微信公众号开启了获取用户地理位置的功能,用户打开微信后点击菜单进入了页面,此时微信后台向我们推送了用户地理位置事件消息和用户点击菜单事件消息,这两个消息的CreateTime 和openid相同,导致被我们系统识别为重复消息,文档推荐的排重方式过滤掉了合法数据,这应该是微信后端服务考虑的不够周全。
4.解决
消息排重的时候把Event字段也加入其中即可.
具体参考我之前的文章《微信推送消息排重解决办法》
欢迎指正,感谢关注。
相关推荐
如果你想实现微信的消息推送功能,必须要在后端处理一系列与微信的交互(access_token,openid,fromId),存储还有进行有效性的验证,**但是如果用了Bmob的小程序SDK**,仅需要前端人员进行简单几句代码的编写,**前端...
通过微信小程序的消息推送功能,实现了通知公告的实时推送给用户。 可以向学生和宿舍管理员发送重要通知和提醒。 统计与分析: 基于后端数据,实现了宿舍报修、预约情况的统计分析功能。 宿舍管理员可以通过后台...
消息通知与活动推送:系统可以向用户发送美食活动、优惠信息等消息通知,及时推送最新的美食资讯,提升用户体验。 管理员后台管理:管理员可以通过后台管理系统对美食店铺信息进行管理,包括添加新店铺、编辑店铺...
消息推送:利用微信小程序的消息推送功能,实时向用户推送停车信息、费用提醒等通知,提高了用户体验。 综上所述,weixin077停车场微信小程序采用了多种先进技术,实现了停车场查询、导航、入场、出场、支付等一...
平台根据用户需求将任务推送给附近的服务人员(跑腿员),跑腿员接单后执行任务。 用户可以实时查看订单状态,包括跑腿员接单、取货、配送等环节。 支付与结算: 系统支持在线支付功能,用户可以通过微信支付或其他...
基于Spring Boot框架的微信小程序校园快递平台系统旨在为校园内的学生提供一个便捷的快递服务平台,结合了后端逻辑处理和微信小程序的用户界面,实现了以下主要功能: 快递下单与查询:用户可以通过微信小程序提交...
系统支持实时消息推送功能,提醒用户行程安排、景点开放时间变动等信息。 通过以上功能的设计与实现,基于微信小程序的智慧旅游平台结合SSM框架为用户提供了便捷、智能的旅游服务,帮助用户更好地规划和享受旅行,...
7.1.7配置小程序的模版推送消息 54 7.1.8配置订单取消通知 54 7.1.9配置订单配送通知 54 7.1.10配置提醒评价通知 55 7.1.11配置订单完成通知 56 7.1.12后台配置字段说明 57 7.1.13小程序启动页 60 7.1.14 ...
4. 通知推送:系统会根据请假与销假的状态,向学生和教师推送微信消息通知,提醒相关人员及时处理请假事务。 5. 数据统计与分析:系统提供了数据统计与分析功能,方便管理员了解学生请假的总体情况,为学校管理提供...
系统支持定时推送功能,管理员可以设置定时推送特定文章或消息给用户,提高信息传播效率和及时性。 数据统计与分析: 系统收集用户访问行为、阅读偏好等数据,并进行统计和分析,为管理员提供用户行为分析报告和...
6. 消息通知:实时推送预约成功、检测报告出炉等消息提醒。 **三、技术架构** 1. 前端:使用微信官方提供的WeUI组件库,结合HTML、CSS和JavaScript实现界面布局和功能逻辑。 2. 后端:基于Node.js的Express框架...
系统采用了Spring Boot框架提供的后端逻辑实现,并通过微信小程序提供的接口与用户进行交互。同时,系统还利用了数据库技术存储用户的健康数据和健康报告,确保了数据的安全性和可靠性。 基于Spring Boot框架的微信...
系统提供消息通知功能,包括帖子被评论、收到私信等提醒,及时推送相关信息给用户。 权限管理与安全性: 系统实现了用户权限管理,包括普通用户、管理员等角色,保障论坛的正常运行和信息安全。 系统采取了一系列...
实时推送健康建议和预警,让用户随时掌握自己的健康状况。 支持数据同步更新,用户可以随时查看历史记录和趋势图。 总之,“健康早知道”微信小程序结合了SpringBoot、微信小程序和Vue技术,为用户提供了一个全面、...
基于Spring Boot框架的微信小程序新冠抗原自测平台旨在为用户提供便捷的新冠病毒抗原自测服务,结合了后端逻辑处理和微信小程序的用户界面,实现了以下主要功能: 自测预约与管理:用户可以通过微信小程序预约新冠...
基于Spring MVC和MyBatis框架构建后端服务,实现与微信小程序的数据交互和业务逻辑处理,保证系统的稳定性和高效性。 数据库设计合理,包括学生信息表、宿舍信息表、报修信息表等,保证数据存储的完整性和一致性。 ...
6. **消息推送**: 通过微信小程序向学生推送签到提醒和结果通知,提高用户体验和互动性。 整个项目采用MVC设计模式,其中Spring负责整体业务的逻辑处理和依赖注入,Spring MVC用于处理HTTP请求和页面跳转,而...
该资源包括论文、毕设源码和详细的说明文档,旨在帮助学习者更好地理解和实现一个基于微信小程序的健康信息推送系统。 在这个资源包中,论文部分详细介绍了项目的背景、目的、意义、技术选型、系统设计和实现过程。...
8. **活动通知**:通过微信模板消息功能,向用户推送美食节、特色活动等相关信息。 整个项目采用MVC设计模式,Spring负责整体业务逻辑的处理和依赖注入,Spring MVC用于处理HTTP请求和页面跳转,而MyBatis负责与...
4. **消息通知**:系统自动推送申请进度、面试邀请等信息,让用户随时掌握最新动态。 5. **数据分析与统计**:为雇主提供应聘者的数据分析报告,帮助雇主更精准地筛选人才。 **三、技术实现** 项目采用前后端分离...