该公众号暂时无法提供服务,请稍后再试
文章目錄
之前同事做微信公众平台的扫描带参数二维码事件时老是提示”该公众号暂时无法提供服务,请稍后再试”, 当时没有得到解决,现在好好看了文档,尝试之后,终于得到解决,记录下来。
在被动回复用户消息里看到如下一段话
假如服务器无法保证在五秒内处理并回复,必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试(这种情况下,可以使用客服消息接口进行异步回复),否则,将出现严重的错误提示。详见下面说明:
1、(推荐方式)直接回复success
2、直接回复空串(指字节长度为0的空字符串,而不是XML结构体中content字段的内容为空)
一旦遇到以下情况,微信都会在公众号会话中,向用户下发系统提示“该公众号暂时无法提供服务,请稍后再试”:
1、开发者在5秒内未回复任何内容
2、开发者回复了异常数据,比如JSON数据等
1
2
看到这里推荐返回success, 而公司后台的api使用Django-REST-Framework,于是简单返回`return Response("success")`, 但还是一直报错,后来发现代码里写着
def get_renderers(self):
if self.request.method == 'GET':
return [TextRenderer()]
return [XMLRenderer()]
1 | 于是将它注释掉试试,发现还是不行,默认情况下返回的使JSON字符串,于是将这个函数改为 |
def get_renderers(self):
return [TextRenderer()]
```
错误消失了,问题解决。这里使用TextRenderer后,返回的格式是text/plain。
另外还发现一个问题, 生成带参数的二维码一共有两个文档, 文档1和文档2, 一个有效期最长可以设置为在二维码生成后的7天,一个有效期最长可以设置为在二维码生成后的30天,真是蛋疼。