公众号里边需要几个微信轮流发言,公众号通知一个微信后,如果在规定的时间内这个微信号没有发送消息,就通知下一个微信发言,这个功能服务端怎么实现呢?如何判断是否超时?
1
sarices 2015-07-04 16:12:43 +08:00
微信号发送消息时间-公众号通知时间>超时时间
|
2
colorsand OP 难道要用一个死循环,不断进行“微信号发送消息时间-公众号通知时间>超时时间”的判断?
|
3
alex321 2015-07-04 17:22:13 +08:00
超时时间是你确定的吧。。目前微信向公众号发送消息是没有超时这一说的。
实际执行情况是这样的。我们假设有微信 A、B、C。当 A 向公众号发起消息的时候,微信会推送到公众号的服务器,并带有时间戳。公众号通知微信 B,这个过程中需要注意微信的服务器再推送消息给公众号服务器的时候会保持连接 5s,如果超时会尝试发起最多 3 次连接,也就是大约 15s。如果这 15s 比你自己设置的超时时间长,那么你需要在超时之后通知微信 C;如果相比短,在 15s 内通知微信 C,有相应则需要立即回应微信,否则需要利用服务号认证高级接口 48h 回复推送。 但是,微信目前针对特定粉丝微信号一个月只可以发送 4 次消息。你这里就已经用掉了不少了。 我疑惑 po 主描述的是公众号的客服微信问题。那个我还没看微信的文档,因此上面的并不适合客服微信需求,请自行查找处理。 |
4
colorsand OP 没错,我就是用的客服接口。我尝试用sleep,暂停程序的执行,然后发起一个请求调用客服接口,暂停的时间设为30秒的时候,微信收不到消息,暂停10的时候可以收到消息。
|
5
alex321 2015-07-06 14:32:58 +08:00
@colorsand 微信被动回复消息用的是 xml 格式;客服消息用的是 json 格式。
正常来说,微信公众号接收到微信粉丝的消息后 48h 内,都可以不限定字数地调用客服接口。。 我肿么赶脚 po 主用的是被动回复消息呢,因为你说 30s 收不到,10s 却能收到,非常符合微信服务器想公众号服务器发起请求如果没有回应会重复发起,中间的时间大约在 15s。。 微信的文档中,被动回复消息: https://mp.weixin.qq.com/wiki/14/89b871b5466b19b3efa4ada8e577d45e.html;主动的客服消息: https://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html。 关于那个 sleep,也可以用计划任务来跑一跑。 |