美文网首页
该公众号提供的服务出现故障,请稍后再试

该公众号提供的服务出现故障,请稍后再试

作者: 码丁 | 来源:发表于2021-04-28 18:02 被阅读0次

一、问题描述

在微信公众号后台配置好接口配置信息后,以为就万事大吉了,开发的过程中遇到了一个“该公众号提供的服务出现故障,请稍后再试”错误,觉得挺奇怪,但未引起足够重视。直至QA在测试过程中发现该错误,才发现是代码的bug。


image.png

二、解决方案

在寻找问题之前,大脑中先有了一个猜想:既然需要接收并处理微信发送过来的回调消息,那十有八九是接口返回给微信的消息不正确。基于此,在微信开者文档中找到了证据:

微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息”。

代码是python写的,在处理完消息后,返回了一个None值,下面是错误的写法:

class WeChatWebHook(ApiView):

    def post(self, request, *args, **kwargs):
        # 省略接收到微信回调消息后的业务逻辑处理过程
        return HttpResponse(None)

改正方法很简单,直接返回空字符串即可,如下:

class WeChatWebHook(ApiView):

    def post(self, request, *args, **kwargs):
        # 省略接收到微信回调消息后的业务逻辑处理过程
        return HttpResponse("")

修改完成后,再次给微信公众号发送消息、或者触发扫码关注事件,都不会报错了。

小结

在跟第三方平台进行集成时,极其容易遇到问题,遇到问题时,要冷静地找到自己的解题思路。

相关文章

网友评论

      本文标题:该公众号提供的服务出现故障,请稍后再试

      本文链接:https://www.haomeiwen.com/subject/paavrltx.html