微信发送客服消息 超时 重复回复 问题

用客服消息 在做一个 微信生成海报的功能,用户点击菜单,需要生成二维码海报,然后推送给用户,由于生成需要加二维码和头像水印所以需要几秒时间。容易超时 。
微信超时就会重复提交 微信官方是这样解释的:
假如服务器无法保证在五秒内处理并回复,必须做下述回复,微信服务器不会对此作任何处理,并且不会发起重试。
1、直接回复空串(指字节长度为0的空字符串,而不是XML结构体中content字段的内容为空)
2、直接回复success

这里的直接回复空串具体怎么处理的?
echo "";echo NULL; echo success试了都不行,过了5秒还是会重试
我现在是要给用户发一段文字,然后发一张图片,由于发图片时间长,结果文字总是被发了好几遍,怎么解决?

现在做了一下 缓存6秒的时候 好像是可以的 但是这个时间有没有可以优化的 已解决 优化时间的话 只能多线程了

阅读 7.6k
1 个回答

不知道你使用哪种编程语言,但这里的直接回复success的意思,是指当微信发送请求过来时,你直接输入一个success的字符串给他就行了,这样他就不会重试。

然后,当你生成好以后,再调用发送客服消息,将图片发送给对方。

大概就是如此。

=====UPDATE======

$createtime=S('CreateTime'.$id);
if($createtime){
    exit('success');
}
S('CreateTime'.$id,$data['CreateTime'],6);

如果这个判断我没有理解错,是指用户第一次是会执行 if 后面的生成动作的吧,此时微信服务器在5秒内未收到,就会再次重试了。

换句放说,你这个永远都会被重试。

相对于合理的是当接收到要生成图片的事件消息时,先记录下来,然后立刻返回 success。然后通过【多线程、消息等】其他手段去处理生成动作,最后再通过客服消息把图片发现给他。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进