1、很多朋友在开发微信平台时都会遇到用户发送信息或执行某种需要和服务器交互的操作时,公众号提示“该公众号暂时无法提供服务,请稍候再试”的提示,这样让人感觉很不爽,我那篇经验也已经分析了原因。
2、出现这提示,在排除网络正常的情况下,最大的原因就是因为您的程序执行时间过长,没有有效的返回数据,微信就判断是执行错误,所以返回了无法提供服务的提示。官方说的是如果不能及时处理时需要回得空串就行了。
3、上一篇经验也给出了PHP版的回复方法,就是直接echo '';回复空值,这样微信平台收到这个就不做任何提示了,但是这有个很不好地方就是用户输入内容或点击什么了,你的公众号没有反应,在用户体验上就差些了。上一篇经验不是很完善,因为在echo空值后,你再执行程序,程序还是会超时,这时可能还没提示无法提供服务。
4、要想在程序长时间执行(超过官方说的5秒内回复),就需要在5秒内回复出数据,如果没有数据就回复空,然后继续执行程序,这时就需要在程序中利用缓冲实现动态输出了,PHP的就是使用flush,ob_flush实现。这样在程序执行过程中,直接返回给了微信,微信不会出现错误提示,程序也能继续执行。
5、上面只是说了,执行过程中输入,保证不让公众号因为程序长时间运行而提示“该公众号暂时无法提供服务,请稍候再试”,但为了用户更好体验,就需要在程序执行完毕后,调用客服消息接口给用户发信息了,这样用户在输入内容后,程序在后台就算执行10秒,但不会出现无法提供服务信息,因为你已经返回空值了,程序在10秒后执行完毕得到想要的数据又通过客服消息接口发送给了用户,用户体验上就会增强很多。