怎么用 php 对微信事件消息进行排重啊。。

2015-12-09 19:28:37 +08:00
 zhangdjxx

微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次,如果在调试中,发现用户无法收到响应的消息,可以检查是否消息处理超时。
关于重试的消息排重,有 msgid 的消息推荐使用 msgid 排重。事件类型消息推荐使用 FromUserName + CreateTime 排重。。。没看懂怎么做呢。。

2260 次点击
所在节点    问与答
6 条回复
paicha
2015-12-09 20:04:38 +08:00
比如关注送积分操作。
后台第一次超时的话,微信会重新发起请求。这时候你的后台就收到两次关注完成的请求了。
当然你不想处理第二次新请求,不然就给用户送两次积分了,那么你的接口要能正确处理重复的请求。

比如你可以自己的业务逻辑判断,使该动作只能完成一次。
或者你判断本次请求的消息是不是已经处理过的,那么就要知道消息的唯一标识是什么。
msgid 、 FromUserName + CreateTime 就是消息的唯一标识。
zhangdjxx
2015-12-09 20:06:46 +08:00
@paicha 求 php 做法,我是放在 sae 上的。。。现在确实有积分加 2 次的情况。。
paicha
2015-12-09 20:23:06 +08:00
@zhangdjxx 跟编程语言无关,跟你的业务逻辑有关。
aliuwr
2015-12-09 21:30:52 +08:00
美丽说的员工就这个能耐?
zhangdjxx
2015-12-10 01:33:53 +08:00
@aliuwr 产品..业余学学开发..
aliuwr
2015-12-10 07:31:40 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/242342

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX