{"collapse_key": "order_%s" % order_id,
"notification": {"title": title, "body": body},
"priority": "high"}
华为和小米设备上,同一天的 6 条运营推送只剩最后一条可见,其余被折叠成「还有 5 条通知」。iOS 侧正常,安卓两个厂商都这样。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,推送 payload 里 collapse_key 用了固定的 app 名,同一 key 的消息会互相覆盖。厂商通道按这个字段做折叠,只保留最新一条。运营侧以为都送达了。
「厂商通道折叠」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
处理上按这个顺序:collapse_key 按消息类型区分 不要全局同一个值;需要逐条展示的类型干脆不传这个字段;用厂商后台的消息明细核对实际展示条数;按厂商分别测三条连续推送的展示效果。
改完只确认一件事:连续发三条不同类型推送,安卓设备上三条都能看到,厂商后台展示数和下发数一致。
