微信开发被动回复消息:该公众号暂时无法提供服务,请稍后再试

最近小编在开发一个PC端站点以和公司公众号做对接,网站中有一个功能就是用户扫描站点上的二维码会在公众号上收到一条推送消息。具体实现流程如下:

微信会以事件的形式将用户操作相关数据以xml格式推送到站点,站点经过处理之后的数据也以xml的格式返回到微信服务器,微信服务器将解析后的数据推送到公众号上。

在开发过程中,小编遇到一个问题就是用户扫描二维码后收到一条错误信息:“该公众号暂时无法提供服务,请稍后再试”。微信官方文档上解释如下:

小编在测试时一扫描二维码立即会收到微信推送的错误消息,所以第一条可以排除。接下来小编很认真的检查了自己返回给微信服务器的数据格式,是xml无疑,那么问题出在哪里呢?

且看微信官方文档,微信推送事件文档:

开发者被动回复消息文档:

注意,这里小编将开发者微信号几个字圈红,因为问题就出在这里。

我们将经过处理后的数据返回到微信服务器时必须保证ToUserName及FromUserName和微信推送过来的FromUserName及ToUserName具有相同的值(注意顺序)。

在开发者被动回复消息的文档中说FromUserName是开发者微信号,所以小编就把自己的开发者微信号写入。但微信服务器发送过来的数据中ToUserName的值却是经过加密处理的。这就导致微信发送过来的ToUserName和小编返回给微信的FromUserName二者的值不同,所以微信服务器就返回给用户一条错误消息:“该公众号暂时无法提供服务,请稍后再试”。

小编将返回数据中的FromUserName的值改为微信发送过来的ToUserName的值之后,问题得到解决。

版权声明

本文为作者原创,版权归作者雪飞鸿所有。 转载必须保留文章的完整性,且在页面明显位置处标明原文链接

如有问题, 请发送邮件和作者联系。

posted @ 2016-08-15 11:12  雪飞鸿  阅读(3627)  评论(0编辑  收藏  举报