微信公众号遇到“该公众号暂时无法提供服务 请稍后再试” 怎么办

微信公众号遇到“该公众号暂时无法提供服务 请稍后再试” 怎么办

      一般的情况下,当用户在微信中做了操作后(包括点击自定义菜单、扫码或者回复消息等),微信会推送给开发者服务器一条消息通知,这时,开发者根据相应的消息类型,做相应的响应给用户。    

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

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

2、开发者回复了异常数据,比如JSON数据等

        问题2是一般都是代码有问题,开发者自行排查就可以解决。

下面重点说一下问题1:        

    我们开发中,有时候会有耗时比较长的操作(涉及到大数据的统计整理,复杂业务逻辑的处理等),如果超过5S,微信公众号就会自动给用户推送一条提示消息“该公众号暂时无法提供服务 请稍后再试”。这种提示对于用户来说是相当不友好的,我们需要借助其他方法来避免这样的情况出现。

        在微信的开发文档中,有这样一个描述:当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。

        开发文档中还有一点描述:

        假如服务器无法保证在五秒内处理并回复,可以直接回复空字符串,微信服务器不会对此作任何处理,并且不会发起重试很多人会在这里混淆,其实这个空串是指回复一个空字符串,而不是一个XML结构体中content字段的内容为空,请切勿误解。

        通过以上两点,我们可以得出一个结论:如果数据请求超过5S,可以先给微信服务器相应空串,然后再通过客服接口,给用户发送消息。这样,“该公众号暂时无法提供服务 请稍后再试”的问题就迎刃而解,且让用户同样能收到消息,用户是感知不出来服务端到底是做了哪些操作处理的。

        php代码示例:

    echo '';
    flush();
    doSomeThing();//调用客服接口,回复用户


        




回复列表



回复操作






   

发布时间:2016-11-30 10:19:57