目录

  • 前景提要
  • 问题解决
    • 正确的响应结果

前景提要

上篇文章说到,最近遇到一连串微信公众号相关的问题,这次记录的是微信事件推送未正确响应引起警报的问题

这个警报的问题,是从微信警报群里暴露出来的(可在微信公众平台后台管理配置警报阈值警报群人员),警报内容大致如下:

Appid: xxx
昵称: xxx
时间: 2020-xx-xx 09:27:00
内容: 微信服务器向公众号推送消息或事件后,得到的回应不合法
次数: 5分钟 15825次
错误样例: [OpenID=xxx][Stamp=1590197220][3rdUrl=https://www.aa.com/coreServlet][Event=Location Report][ip=120.25.130.144][response_length=163][response_content=null]
报警排查指引,请见: https://w.url.cn/s/A1dMqXI

问题解决

一开始我其实是挺懵的,我没接触过微信的开发流程,丢给我这个警报的问题一时间不知道从哪里入手。先点到警报信息里的排查指引去看,官方对警报信息的详细说明如下:

这个问题就像字面的意思一样,微信将用户的事件操作推送给配置的响应接口,而响应接口没有按微信要求的内容返回

所以解决思路就很明确了:按微信要求返回对应事件推送所需的响应的格式。

  • 首先,要找到事件响应在哪里处理的,微信官方文档中写要在微信开发者中心配置服务器地址,这里不得不吐槽下,我找了半天都找不到微信开发者中心在哪(有人说是账号权限问题,只有公众号申请者可见),最后在基本配置找到了地址
  • 微信所有的事件推送都只发给同一个服务器地址处理,所以这个接口要处理所有事件的响应。我们出现警报的原因有两个,第一:漏了对Location Report事件的处理。第二:处理过程的代码抛出了异常,未在catch中处理异常时的响应。这两个原因都导致了传给微信的响应结果为null,所以发生警报

正确的响应结果

微信开发文档中有如下事件推送响应的流程图:

这里面就已经说明了微信需要怎样的响应结果了,地理位置上报这个事件比较特殊:

所以响应应该返回success(或""),其他事件推送的响应的xml格式可参照官方文档,这里就不重复列了。

其实按理说所有的响应都可以回复success或"",但实际业务中一般不会这么做,因为回复success的意思是:我告诉微信我收到了你的推送,但我什么消息都不需要微信传给用户。
这就相当于,你关注了一个服务号,服务号有很多菜单项可以点击,但我点击了按钮发现什么数据和窗口都没有返回,那这个服务号就没有存在的意义了

微信公众号-微信事件推送未正确响应相关推荐

  1. 接收微信公众号的事件推送并且回复消息

    微信公众号回调我们配置的服务器url 配置公众号回调地址 新建配置URL的接口 XML转java Bean工具类 演示 配置公众号回调地址 URL配置微信会验证此地址,直接返回微信的echostr参数 ...

  2. 微信公众号接收事件推送

    功能 当开发者在微信开放平台启用了服务器配置后,在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信 ...

  3. nodejs 监控微信公众号关注事件推送

    1.首先要在微信公众号后台填写服务器信息. 具体可看微信的文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp142113531 ...

  4. 如何在微信公众号的文章推送中展示bilibili的视频

    0x00  需求背景: 我们学院举办了一个短视频设计大赛,需要在官方公众号里进行线上投票,选出大家最喜欢的视频. 然而微信公众号的文章推送中,限制了每篇文章只能上传三部视频,而我们需要把三十部作品都放 ...

  5. 通过python实现企业微信公众号链接+图文推送

    背景:通过python实现企业微信公众号链接+图文推送 目的:实现点击即看到内容,用更符合用户查看公众号消息的习惯推送消息 步骤: 1.创建企业微信公众号(应用) 2.确定推送内容(BI报表链接)+标 ...

  6. 观察者模式--微信公众号文章的推送

    ​观察者模式 学习容易,坚持不易,如果你坚持看完,会发现设计模式如此简单~ 目录 引子 认识观察者模式 我们先来看看微信公众号和用户之间的关注是怎么回事? 发布者+订阅者=观察者模式 观察者模式的原理 ...

  7. 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定,Java微信公众号开发消息推送公众号用户绑定问题 的解决办法

    问题概述 在进行微信公众号开发的时候遇到的这个问题,通过Web开发公众号的模板消息推送,在调试的过程中,需要进行开发者接口联调&调试,在调试之前需要将当前的公众号与用户的微信号进行绑定, 绑定 ...

  8. 微信公众号开发消息推送以及图文推送

    今天给大家分享的关注公众号自动推送图文消息,以及做一个超牛逼的机器人. 先看看效果. 发错图了...这是我昨天开发的一款机器人chu了会骂人啥都不会了.我今天将它词库进行了更新和升级,接入了http: ...

  9. Java对接微信公众号模板消息推送(架包WxJava)

    内容有点多,请耐心! 最近公司的有这个业务需求,又很凑巧让我来完成: 首先想要对接,先要一个公众号,再就是开发文档了:https://developers.weixin.qq.com/doc/offi ...

最新文章

  1. freemarker 解析 json
  2. 测试多个线程调用同一静态方法(无静态变量)时是否有线程安全问题
  3. MySQL(8)数据库中的高级(进阶)正则和存储过程
  4. 检测网络状态的工具类
  5. Python入门之数据类型
  6. twitter 数据集处理_Twitter数据清理和数据科学预处理
  7. ImportError: cannot import name 'imresize'
  8. 结构体typedef struct和struct
  9. java string返回_老生常谈Java String字符串(必看篇)
  10. 什么是java 前端_java前端后端分别是指什么?
  11. 数学建模大赛准备方法及资源分享
  12. Linux与BSD中TCP协议栈实现比较
  13. linux edt时间转成cst时间,edt时间和北京时间换算(edt时间 现在)
  14. ubantu下部署python
  15. 人生苦短——珍惜眼前人
  16. 并行数据转换为串行数据的转换器
  17. IPAD1代做win10的无线拓展屏
  18. 传统人工智能中的三大问题
  19. Android -- AndroidX库
  20. Ubuntu16.04安装和开机卡在Ubuntu的logo上的解决办法(附加一个Ubuntu的截图工具)

热门文章

  1. 安装 Windows XP 时出现错误信息“STOP:c0000218 {Registry File Failure}”(STOP: c0000218 {注册表文件失败})
  2. 【历史上的今天】12 月 5 日:分布式系统的“三驾马车”;世界上第一篇计算机科学博士论文;IBM 推出“深蓝”计算机
  3. turtle库函数大全
  4. Android 自动开关机
  5. Android AlarmManager实现自动开关机
  6. Linux对一个目录及其子目录所有文件添加权限
  7. TCP第三次握手失败怎么办,即最后一次握手失败
  8. 六点要求,社招进阿里,一个萝卜一个坑,想去阿里看看能不能对号入座再说
  9. TCP与UDP服务器和客户端的搭建
  10. oracle闪回15分钟前,Oracle闪回技术(Flashback)