目录

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

前景提要

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

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

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. 通过构建城市来解释HTML,CSS和JavaScript之间的关系
  2. 关于语音文字的互转识别的猜想
  3. ubuntu11.10+git+svn works
  4. Boost::context模块callcc的解析器测试程序
  5. oracle 打印值,oracle – 在SQL Developer中打印变量的值
  6. Java Experiment 3 PairProgramming
  7. 文本识别新王者CharNet:卷积字符网络
  8. 【ModelArts-Lab AI实战营】使用Postman测试Modelarts在线服务(图像分类、物体检测)
  9. if vue 跳出_vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
  10. Windows下Tuxedo的安装与配置-无数据库
  11. 优化函数、学习速率 与反向传播算法
  12. java中的scanner用法
  13. WES7 SKU WES7E和WES7P的区别
  14. Android View简易生成Pdf
  15. Golang pprof简介
  16. matlab 包含nan的行,matlab中去除含有NaN的行或者列
  17. java返回给前端的json数据中带有转义符号如何处理
  18. Linux·启动脚本·启动流程
  19. 【人工智能实验室】第三次培训之手写数字识别代码理解
  20. matlab中的AR模型短时预测交通流

热门文章

  1. gram是什么意思中文翻译_-gram是什么意思_-gram的翻译_音标_读音_用法_例句_爱词霸在线词典...
  2. 马云的创业故事及他人生中的摆渡人-阿里香港上市(八)
  3. 华为交换机实现mac地址与ip地址一一绑定
  4. Python计算歌手得分数案例
  5. Excel基础:开始菜单之字体的华丽转身
  6. jquery.chosen.css,jquery-chosen 选择框插件
  7. 如何评价一个新技术——以 ChatGPT 为例
  8. JESD79-5 DDR5 设计标准
  9. c语言航空订票系统流程图,飞机订票系统(C语言代码及流程图).doc
  10. win8装不上PL-2303驱动的看过来[附带贴图步骤+驱动]