事件类型的菜单,操作的时候会推送至少两条消息到开发服务器,如果一次性发N张图片,就会有1条事件消息+N条图片消息。
我本来的思路是 缓存{EventKey+FromUserName+CreateTime: SendPicsInfo.Count}, 然后后续的图片消息通过读取缓存EventKey+FromUserName+CreateTime,来判断对应的image消息执行哪个功能。
这个已经实现了。
但是坑来了。
坑一:
事件消息的CreateTime和image消息的CreateTime不一定一样。
这个好解决,打不了缓存名字不带CreateTime,并设置缓存5秒过期;
坑二:
在ios终端发出的事件消息中,SendPicsInfo.Count是0!据说这是微信的Bug???
这个坑不好填,但临时方案也可以凑合。
最坑的是下面这个:
事件消息和image消息的顺序不一定,也就是说可能image消息先于事件消息推过来。这个要命了。
到目前为止我还没任何想法。
希望有哪位大神帮忙来填一下。。。
我也是遇到这个问题,感觉很坑,我的需求是调用pic_photo_or_album,然后去调用阿里的人脸识别,对比下阿里的接口,感觉微信的接口就不像是大厂的样子
在这篇博客中有提到同样的问题,我看上下文根本就没有人提出解决方案,特别是在两条消息并没有明确的顺序的时候,还是没有好的解决方案。
我自己已经考虑了一个解决方案,不是很完美,但理论上可以解决绝大部分问题,理论上剩下的漏洞,就只能靠微信官方来解决了。
如果有需要答案的,可以回复,我后面再写一篇解决方案的文章。如果没人感兴趣就算了。
没看懂