微信公众号开发--“该公众号提供的服务出现故障,请稍后再试”

错误描述

在之前的微信公众号开发过程中,遇到了提示“该公众号提供的服务出现故障,请稍后再试”的错误,当时找错误的原因真是丧心病狂,通过查阅资料也知道了几个产生这个提示的原因,特此写个小经验分享一下,有同样遇到的小伙伴可自行排查一下。
错误图片:
在这里插入图片描述
尽管公众号会提示有故障,但其实并没有影响到我们的业务,只不过天天提示这玩意儿也很恶心。

好了,进入正题,产生这个问题的原因总结为以下几点。

原因排查

微信服务器没有在5秒内收到回复

这是官方文档的要求,默认用户服务器必须在5秒内给予回复
在这里插入图片描述
可能我们的业务并不能保证5秒内能执行完,但是可以设置成异步去处理。

返回给微信服务器的消息内容格式不正确

你的接口返回值里面有空格

我并没有遇到这个错误,这是在查阅资料时发现有的博主遇到了这个问题,所以也借鉴过来:
在这里插入图片描述

可以看到接口文档里面的返回值

<xml> <ToUserName>< ![CDATA[toUser] ]></ToUserName> <FromUserName>< ![CDATA[fromUser] ]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType>< ![CDATA[text] ]></MsgType> <Content>< ![CDATA[你好] ]></Content> </xml>

里面包含了大量的空格,这是致命性的,接口文档里面没有特别说明这些空格的处理,所以这也是一个巨坑了,去掉xml中的所有空格就ok(尤其要注意符号之间的空格,请严格检查)。

接口返回值的字段取值不对

还是以被动回复用户信息为例,同时结合接收普通消息接口说明
在这里插入图片描述
ToUserName、FromUserName参数值取错,这一点也很容易赋值错误,很多人(包括我)一开始ToUserName我取的就是接收普通消息接口里面的ToUserName、FromUserName,细思后发现,这是一个很搞笑的错误,显然这两个接口接收的主体对象是不一样的,也就是说,被动回复用户信息接口返回值里面的ToUserName、FromUserName参数值应该取值接收普通消息接口里面的FromUserName、ToUserName。
在这里插入图片描述

xml返回值的节点名不对

在这里插入图片描述
可以看到,被动回复用户信息接口xml返回值里面的节点名是Image,要是你写成小写的image,就gg了。

授权给了第三方平台

这是我在开发过程中遇到的问题。排查这个问题有一个非常好的技巧,不得不说,微信文档在全是坑的同时,也提供了一点非常有用的工具了。

在这里插入图片描述

就是这个东东,大家可以去自己的公众号管理平台上找到运维中心-接口告警,你就可以看到这个二维码了,我的问题出现的时候,已经排查了以上多种原因,看的是头脑发混,但是最终还是被我发现了这个小工具,扫码后会建立一个群,一个是你,一个是微信公众号平台报警账号。

在测试这个报警之前,需要先设置一下告警规则,让微信服务器知道在什么时候需要向你的告警群发送警报。
在这里插入图片描述
设置后,可以再次让自己的公众号产生几次故障的提示,那么群中的微信告警账号会发送一个消息,如下:
在这里插入图片描述
主要看这两个地方,在我的警报中我发现有一个第三方平台的提示,就去平台上找到公众号配置-授权管理,果然是有这个第三方的授权,猜测是该第三方的原因,取消授权后,问题果然迎刃而解,所以授权第三方时还是要注意一下这个问题。
不过微信的这个小工具还是要点个赞的!!!啾咪(^_-)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值