该公众号暂时无法提供服务请稍后再试

关键字:该公众号暂时无法提供服务,请稍后再试 微信公众平台 

原文:http://www.cnblogs.com/txw1958/p/weixin-suspend-service-solution.html 

 

在用户向公众号发消息,或点击自定义菜单时,开发者一般会根据业务需要,利用被动响应消息接口,向用户回复响应消息。

如果开发者认为用户消息无须回复,或开发者准备随后再通过客服消息接口来对用户进行回复,请按照开发者文档的要求,直接回复空串,微信服务器收到空串则不会进行处理。

一旦遇到以下情况,微信都会在公众号会话中,向用户下发系统提示“该公众号暂时无法提供服务,请稍后再试”:

1. 开发者在5秒内未回复任何内容

2. 开发者回复了异常数据

详细流程请见开发者文档:发送被动响应消息接口。以上改动将于两周后(2014年10月30日)生效,请开发者注意。

具体提示如下图所示:

 

原因分析:

最主要的还是开发人员写代码不够严谨,没有严格遵守开发文档的标准XML格式回复。

 

解决方案:

1. 使用高性能的服务器及空间,海外普通虚拟空间延迟大,建议使用云主机或国内知名服务商的空间

2. 开发模式下保证所有内容都有回复,不能匹配到的回复直接回复空字符串,而不是参数Content为空的xml消息,以便让微信服务器知道程序有响应

例如下面的这个回复就是导致上述错误的原因之一 

<xml>
    <ToUserName><![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]></ToUserName>
    <FromUserName><![CDATA[gh_680bdefc8c5d]]></FromUserName>
    <CreateTime>1359036631</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[]]></Content>
</xml>

 如果使用的是方倍工作室的微信开发接口DEMO,那么需要在回复文本消息时都不回复空内容,或者加入空值判断以进行二次保护,如下面代码中第4~6行所示 

 1     //回复文本消息
 2     private function transmitText($object, $content)
 3     {
 4         if (!isset($content) || empty($content)){
 5             return "";
 6         }
 7 
 8         $xmlTpl = "<xml>
 9     <ToUserName><![CDATA[%s]]></ToUserName>
10     <FromUserName><![CDATA[%s]]></FromUserName>
11     <CreateTime>%s</CreateTime>
12     <MsgType><![CDATA[text]]></MsgType>
13     <Content><![CDATA[%s]]></Content>
14 </xml>";
15         $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content);
16 
17         return $result;
18     }

3. 检查xml格式,不要擅自加其他内容,网上一些代码喜欢自行添加其他内容,比如xml version等,最好去掉这些不符合微信消息格式的内容。

4. 检查代码中是否有echo、var_dump、以及一些告警信息打印,这些信息也会被返回给微信服务器而扰乱XML,从而导致上述问题。

5. 使用方倍工作室的微信调试器,做同样的关键字发送,查看返回的数据是否有异常或超时。微信调试器地址 http://debug.fangbei.org/

6. 参考《微信公众平台开发最佳实践》一书消息构造格式,或使用该书提供的SDK点此购买

 

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/242334

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。