最近在进行微信公众号接口开发,做到自动回复的接口开发时,我按照接入指南接口文档开发好功能后,推上线了测试(你也可以使用ngrok内网穿透)调试发现:总是出现该公众号提供的服务出现故障,请稍后重试的提示。导致这个问题的情况有很多,本篇只是说我所遇到的,希望对看官有帮助。
说实话,微信接入自己的接口开发里面会有非常多的坑,经过好一番折腾,终于解决了,记录下解决方案。
情况1:你的接口返回值里面有空格
犯错率:5星
(我的就是这个错误)结合微信接口文档里面的说明(以被动回复用户信息为例):
可以看到接口文档里面的返回值
<xml> <ToUserName>< ![CDATA[toUser] ]></ToUserName> <FromUserName>< ![CDATA[fromUser] ]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType>< ![CDATA[text] ]></MsgType> <Content>< ![CDATA[你好] ]></Content> </xml>
里面包含了大量的空格,这是致命性的,接口文档里面没有特别说明这些空格的处理,所以这也是一个巨坑了,去掉xml中的所有空格就ok(尤其要注意符号之间的空格,请严格检查)。
情况2:接口返回值的字段取值不对
犯错率:4星
还是以被动回复用户信息为例,同时结合接收普通消息接口说明
ToUserName、FromUserName参数值取错,这一点也很容易赋值错误,很多人(包括我)一开始ToUserName我取的就是接收普通消息接口里面的ToUserName、FromUserName,细思后发现,这是一个很搞笑的错误,显然这两个接口接收的主体对象是不一样的,也就是说,被动回复用户信息接口返回值里面的ToUserName、FromUserName参数值应该取值接收普通消息接口里面的FromUserName、ToUserName。
情况3:xml返回值的节点名不对
犯错率:4星
可以看到,被动回复用户信息接口xml返回值里面的节点名是Image,要是你写成小写的image,就gg了。
以上三点就是本人在对接微信消息管理一些列接口开发时采到的坑。如有疑问,欢迎留言。
---------------------
作者:simonsfan
来源:CSDN
原文:https://blog.csdn.net/fanrenxiang/article/details/80877600
版权声明:本文为博主原创文章,转载请附上博文链接!