8.2.1 公众账号无响应的几种情况
公众账号无响应通常是由请求处理超时、消息内容超出限制、服务器故障等情况引起,开发者遇到这类问题时应优先排查是否由以下几种情况引起。
(1)请求处理时间超过5秒
在开发者文档中是这样描述的:“微信服务器在5秒内收不到响应会断掉连接”。也就是说,当用户向公众账号发消息时,微信服务器会向公众账号后台POST数据,如果公众账号后台5秒内没有响应(也就是说处理时长超过5秒),微信服务器就会断掉连接,用户也就收不到回复。遇到这种情况,只能通过优化业务逻辑代码、缩短请求处理时间来解决。
(2)图文消息的Article个数超过10个
在8.1.3节中提到过,图文消息的Article个数最多只能有10个,如果超过10个,微信服务器会放弃处理,用户也收不到回复。
(3)文本消息的长度超过限制
开发者文档中要求文本消息的内容长度不能超过2048字节。笔者经测试发现,当内容长度等于2048字节时,就收不到公众账号的回复了,也就意味着文本消息的内容长度应小于2048字节(最多允许2047字节)。因此,我们需要对可能超过长度限制的消息内容进行判断,如果超过长度限制就需要适当地截取后再响应。
说明 公众账号无响应也有可能是微信服务器故障引起,虽然可能性很小,但也发生过几次。例如:①2013年4月10日,微信IDC机房内硬件故障,导致微信十几分钟无响应;②2013年7月22日,微信服务器出现自面世以来最大规模的故障,瘫痪7个多小时。