微信公众号开发--“该公众号提供的服务有故障,请稍后再试”
错误描述
在之前微信公众号的开发过程中,遇到了“该公众号提供的服务已故障,请稍后再试”的错误。 当时查找错误原因真是郁闷。 我通过查阅资料也发现了几个导致这个错误的案例。 我想写一个小经验来分享一下提示的原因。 遇到同样问题的朋友可以自行查看。
错误图片:
虽然公众号会提示出现故障,但实际上并不影响我们的业务,但是每天都提示也很恶心。
好吧,我们进入正题吧。 造成这个问题的原因总结如下。
故障处理:微信服务器5秒内没有收到回复。
这是官方文件的要求。 默认用户服务器必须在 5 秒内响应。
也许我们的业务不能保证5秒内执行完毕,但是可以设置为异步处理。
微信服务器返回的消息内容格式不正确。 您的接口返回值中有空格。
我没有遇到这个错误。 我查资料的时候发现有博主遇到了这个问题,所以也借鉴了一下:
可以在接口文档中看到返回值
<xml> <ToUserName>< ![CDATA[toUser] ]></ToUserName> <FromUserName>< ![CDATA[fromUser] ]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType>< ![CDATA[text] ]></MsgType> <Content>< ![CDATA[你好] ]></Content> </xml>
它包含大量空格,这是致命的。 接口文档并没有具体说明这些空格的处理,所以这也是一个巨大的坑。 把xml中的空格全部去掉就可以了(尤其要注意符号之间的空格,请仔细检查)。
接口返回值字段值不正确
仍以被动回复用户信息为例,结合接收普通消息的接口进行描述
ToUserName和FromUserName参数值错误。 也很容易出现赋值错误。 很多人(包括我)最初都是在普通消息接口中使用ToUserName来接收ToUserName和FromUserName。 仔细想来,我发现这是一件很可笑的事情。 错误,显然这两个接口接收的主要对象不同,也就是说被动回复用户信息接口返回值中的ToUserName和FromUserName参数值应该是正常的消息界面。
xml返回值的节点名不正确
可以看到,被动回复用户信息接口的xml返回值中的节点名称为Image。 如果你用小写写image,它将是gg。
已授权第三方平台
这是我在开发过程中遇到的一个问题。 有一个非常好的技术可以解决这个问题。 必须要说的是,虽然微信文档充满了陷阱,但它也提供了一些非常有用的工具。
就是这样。 您可以到您的公众号管理平台,找到运维中心-界面报警,就可以看到这个二维码。 当我的问题出现时,我已经排查过以上原因。 看得我一头雾水,但最后我发现了这个小玩意。 扫码后会建一个群,一个是你的,一个是微信公众号平台报警账号。
在测试此警报之前,您需要设置警报规则,以便微信服务器知道何时需要向您的警报组发送警报。
设置完成后,您可以让您的公众号再次生成几次故障提示,然后群内的微信报警帐号会发送消息,如下:
主要看这两个地方。 在我的警报中,我发现有第三方平台的提示,于是我去该平台找到公众号配置-授权管理。 果然,有这个第三方的授权。 我猜是第三方。 ,取消授权后问题就解决了,所以在授权第三方的时候还是要注意这个问题。
但我还是想喜欢微信这个小工具! ! ! 叽叽喳喳(^_-)