回执为什么可能重复到达 平台会把短信发送结果 POST 到业务指定的接收地址。机制上有一个细节:接收方必须返回 success 才算推送结束,否则平台会重推,每个回执至多推送 3 次,每次间隔叠加 60 秒。也就是说,同一条国际短信回执到达…

回执为什么可能重复到达

平台会把短信发送结果 POST 到业务指定的接收地址。机制上有一个细节:接收方必须返回 success 才算推送结束,否则平台会重推,每个回执至多推送 3 次,每次间隔叠加 60 秒。也就是说,同一条国际短信回执到达业务系统可能不止一次。

如果业务侧不做去重,重复回执可能导致订单状态被重复更新。幂等处理因此成为回执接收的必做题。

回执里有哪些字段可用来去重

推送参数包含 code(2 为成功,其他为失败)、msg、mobilephone、ismsid、report_time。其中 ismsid 对应提交时返回的流水号,是天然的去重依据。

  • 以 ismsid 为主键落库,处理前先查询是否已记录;
  • 已记录则直接返回 success,不再执行业务逻辑;
  • 未记录则写入状态并更新业务,再返回 success。

接收端处理建议

国际短信回执推送带有明确的重推间隔,业务侧按节奏处理即可。

  1. 收到推送后先返回 success,再异步处理业务逻辑;
  2. 避免在响应里做耗时操作,防止超时触发重复推送;
  3. 数据库对 ismsid 建立主键约束,从存储层兜底去重。

幂等与业务状态的关系

幂等的目标不是丢弃回执,而是让同一条结果被处理一次。订单系统据此更新送达状态,重复到达时结果一致,状态不会被错误改写。达信通国际短信回执机制与发送接口配套,发送、余额、回执三类接口可在同一套账号下使用。

重复推送并不意味着发送失败,往往只是接收方没有及时返回 success。把接收逻辑写轻、把业务处理写异步,是避免重复推送的关键。回执到达频率不高,但订单量大时累计记录可观,去重表只保留必要字段,定期归档历史数据,保持查询效率。

接收地址配置与去重逻辑设计,可在接入阶段与客户经理确认。需要了解回执参数细节,可联系达信通客户经理,或拨打 400 118 6878。通过国际短信接口提交的每一条短信,送达结果都有回执可查。