微信订阅号号开发下响应用户信息,提示“该公众号提供的服务出现故障,请稍后再试”

最近在研究微信公众号开发,在验签成功后 对接接口出现了一些问题:

用户请求成功,后台接口也进入了相应的方法,值也有了。然而公众号出现提示信息“该公众号提供的服务出现故障,请稍后再试”。

 

网上搜索相关资源,主要都是说标签大小写的问题。但是我返回的数据格式如下:

微信订阅号号开发下响应用户信息,提示“该公众号提供的服务出现故障,请稍后再试”

我这里的问题不是标签大小写的问题。

到这里,就只能自己一步一步排查什么原因了。后来通过多个用户、多组数据对比才发现了问题所在。

原来,在被动回复用户消息时候ToUserName是开发者的公众号的原是ID:

微信订阅号号开发下响应用户信息,提示“该公众号提供的服务出现故障,请稍后再试”

而微信开发文档上面是接收方ID:

微信订阅号号开发下响应用户信息,提示“该公众号提供的服务出现故障,请稍后再试”

这里在排除其他原因后就是这个原因了:被动回复用户信息时ToUserName是开发者的公众号的原是ID,而FromUserName是微信服务端发来的用户账号ID。

综上:返回值实体中将setToUserName值设置为fromUserName,setFromUserName值设置为toUserName,问题就解决了

微信订阅号号开发下响应用户信息,提示“该公众号提供的服务出现故障,请稍后再试”

 

后面我再去百度了一下为什么会将两个值设为反的,找到一篇博客上面有 用户发送信息给订阅号,订阅号回复用户,整个过程。其流程图如下:

微信订阅号号开发下响应用户信息,提示“该公众号提供的服务出现故障,请稍后再试”

以上流程图来自:https://blog.csdn.net/puspos/article/details/84306570

以上内容,欢迎指正!