一次发送的生命周期
短信在到达最终结果前会经历多个状态。排队中:平台已接收,尚未派发。已排程:将在设定日期发出。已发送:运营商已接收,等待回执——大多数集成在这里出错,因为“已发送”还不是“已送达”。已送达:手机端确认,是唯一的成功结果。
DLR(Delivery Receipt,送达回执)是运营商返回的、说明短信最终结果的回执。它是异步的,通常在发送后数秒或数分钟到达,用于区分“已被接收待发送”与“已实际送达手机”。
DLR(Delivery Receipt,送达回执)是运营商返回的、说明短信最终结果的回执。它是异步的,通常在发送后数秒或数分钟到达,用于区分“已被接收待发送”与“已实际送达手机”。
短信在到达最终结果前会经历多个状态。排队中:平台已接收,尚未派发。已排程:将在设定日期发出。已发送:运营商已接收,等待回执——大多数集成在这里出错,因为“已发送”还不是“已送达”。已送达:手机端确认,是唯一的成功结果。
从运营商接收到抵达手机之间,可能遇到关机、无信号、号码不存在、被拦截或重试窗口过期。如果你的流程依赖确认——例如 OTP——请只把“已送达”视为成功,并监听 webhook,而不是根据发送接口的返回就假定已送达。
发送错误与投递错误:运营商在派发时拒绝或未能完成。号码无效:号码不存在或格式错误。已拦截:目标拒收该类型消息。未送达与已过期:运营商尝试后在窗口内放弃。黑名单:收件人已退订,平台在扣费前拦截。额度不足:派发时余额不够。频次限制与月度频次限制:号码近期收到过多消息而被限频。已取消:发送失败且额度已退回余额。
在账户中配置 webhook URL,即可在每次状态变化时收到 sms.status 事件,收件人回复时收到 sms.reply。每个请求都带有 HMAC-SHA256 签名(X-SMSGo-Signature 头),请先验证签名再信任内容。也可以调用 GET /v1/sms/{id}/numbers 分页查询每个号码的状态。
通常是数秒。但 DLR 是异步的,取决于运营商:关机或无信号可能延迟数分钟,运营商会持续重试直到窗口过期。
供应商侧失败会触发退款,发送状态变为“已取消”——这正是额度已退回余额的标记。被黑名单拦截的消息则根本不会派发。
“号码无效”状态表示号码不存在或格式错误。建议据此清理名单:向无效号码重发只会重复成本。
不需要,也不建议。配置 webhook,在状态变化时接收。GET 接口用于对账,而非实时跟踪。
无需银行卡,无月费,额度永不过期。
创建免费账户