公司动态 · 发布时间:
接口返回成功,不等于短信已经到达手机。要做好短信通知平台接入虚拟号码的送达率监测,需要把发送请求一路追踪到运营商回执和测试终端,并统一统计口径。以下五步可用于常规通知、验证码等场景;具体路由和回执能力取决于号码类型、服务商及目的地网络。
1. 先统一“送达率”的分母和状态
不要把 API 请求成功率当成短信送达率。建议分别记录请求数、平台受理数、提交运营商数、收到“已送达”回执数,以及测试手机实际收到数。可将“有终端实收证据的短信数÷有效测试发送数”用于端到端测试;线上监控则单独报告“运营商已送达回执数÷已提交数”。两项指标含义不同,不能混算。
每条记录至少保存消息 ID、虚拟号码、目的号码、提交时间、状态更新时间和错误码。手机号可脱敏展示,但排障所需的关联标识应保持一致。

2. 检查平台有没有接收并正确提交
- 用一条带唯一测试编号的短信发起请求,在日志中核对请求 ID、目标号码格式、发送号码和消息 ID。
- 区分“请求已受理”和“提交运营商成功”。HTTP 200 或服务商 API 的成功响应,通常只说明请求通过了相应接口校验,不代表终端已收到。
- 检查超时重试是否可能造成重复发送。以消息 ID 做幂等关联,并记录每次重试,避免把一次业务通知误算成多条成功短信。
若平台显示已受理、却没有下游提交记录,优先查号码配置、账户权限、发送频率限制和请求参数,而不是先判定运营商故障。
3. 沿服务商队列与虚拟号码配置排查
查看消息是否仍在排队、是否被限流或退回,并确认虚拟号码具备当前用途和目的地所需的发送能力。虚拟号码不一定能向所有国家或地区、所有网络发送短信;支持范围、发送者展示方式和回执能力应以服务商实际配置为准。
如果支持 SMPP,可核对提交响应及 message ID;通过 HTTP API 接入,则检查平台返回状态和后续状态回调。两种方式都要把服务商消息 ID 与业务侧 ID 建立映射,否则回执到了也难以对应原消息。短信包含中文或特殊字符时,还应检查编码及分段情况:较长内容可能拆成多段,增加失败或延迟排查的复杂度。
4. 解读运营商回执,不把“已送达”当成已阅读
检查服务商是否收到短信状态回执(DLR),并统计回执延迟、成功、失败和未知状态。未知状态可能源于目的网络未返回回执、回调配置异常或状态尚未更新;超过内部设定的等待窗口后,应单独列为“未确认”,不要直接计入失败或成功。
回执中的“已送达”通常表示网络侧报告短信到达相应终端或网络节点,不能证明用户看见、阅读或完成操作。若回执长期缺失,逐一核对回调地址配置、签名校验、服务商事件订阅及平台接收日志。
5. 用不同网络的测试手机做端到端复核
- 准备允许用于测试的号码,尽可能覆盖不同移动运营商;记录号码所属网络、发送时间和虚拟号码。
- 发送短文本和接近业务实际长度的文本,分别检查平台日志、状态回执与手机收件箱。测试时不要连续高频轰炸同一号码,以免触发限制或影响判断。
- 比较各网络的提交成功率、回执率、实际收件情况和耗时分布。按小时或日期观察变化,先建立自己的基线;不要套用脱离服务商、地区和时段的通用达标数字。
- 若回执为成功但手机未见短信,检查收件箱分类、拦截设置、终端信号和 SIM 状态,再向服务商提交消息 ID、时间、号码脱敏信息及回执记录。
持续的短信通知平台接入虚拟号码的送达率监测,关键是分层记录、保留可关联日志,并用真实终端复核网络回执。按“平台—服务商—运营商—手机”逐项对照,才能定位故障发生在哪一段。
常见问题
接口显示成功,为什么手机没收到?
接口成功可能只表示请求已受理。继续查下游提交记录、运营商回执和终端收件情况。
没有送达回执,是否代表短信失败?
不一定。回执可能未返回或尚未更新,应标记为未确认,并核对服务商回调日志。
送达率多久统计一次合适?
可按业务时效选择分钟级告警、小时级观察和日级汇总;验证码等时效较强的消息应更快发现异常,等待窗口需结合服务商回执时延设定。


