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

查看:283
本文介绍了微信开发 - 微信发送客服消息 超时 重复回复 问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

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

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

解决方案

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

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

大概就是如此。

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

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

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

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

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

这篇关于微信开发 - 微信发送客服消息 超时 重复回复 问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆