“欧亿交易所订单频道重复推送”不表示一定发生了第二次成交或第二次撤单。若每条推送都重复入账、释放冻结资金或触发下游订单,会放大风险,因此消费端必须具备幂等机制。

tradeId有值代表成交。官方建议同一交易产品下,同一tradeId只处理首次收到的消息,后续相同tradeId推送应丢弃。
幂等键至少包含instId与tradeId,不能只按uTime判断,因为重复消息的uTime可能不同。
对币币或杠杆市价单,tradeId为空且state=filled时,官方将其视为完全成交终态;相同ordId的filled消息只处理第一条。
这条规则有明确场景边界,不应未经核对扩展到所有产品或所有订单类型。
state为canceled或mmp_canceled时,对相同ordId只处理首次终态消息。reqId有值代表用户改单响应,官方建议每次改单使用唯一reqId;相同reqId的消息同样只处理第一条。
不同事件类型应使用各自幂等表,避免标识碰撞。
业务动作只执行一次,但可在审计日志中记录首次处理时间、重复到达时间、ordId、tradeId或reqId以及脱敏原始摘要,用于排查网络和消费端行为。
幂等记录应具备持久化和合理保留期,服务重启后不能立即忘记已处理终态。
OKX orders频道在极端情况下可能重复推送且uTime不同。成交按instId与tradeId去重,特定filled及撤单终态按ordId处理,改单响应按唯一reqId处理,业务副作用只执行一次。