1. 首页
  2. 常见问题
  3. 文本短信常见问题
  4. 验证码短信常见问题
菜单
本页目录
验证码短信常见问题集 FAQ(知识库)

验证码短信(OTP SMS)常见问题集

面向客户 / 运营 / 技术支持团队的知识库文档 · 覆盖接入、发送、排查、安全合规全链路

文档编号:KB-OTP-FAQ-001 | 适用版本:v1.0 | 更新日期:2026-08-31 | 维护方:铁布衫MiCPaaS运营中心
9大分类45条常见问题1套排查决策流
1

基础概念

6 条
什么是验证码短信(OTP SMS)?

验证码短信是短信服务中「验证码类型」的子类(签名 + 模板 + 验证码变量),用于向用户手机号发送一次性密码(OTP,One-Time Password),完成注册、登录、支付确认、身份核验、换绑手机号等操作。

典型形态:【某某科技】您的验证码为 483920,5 分钟内有效,请勿泄露。

验证码短信和普通通知短信有什么区别?
维度验证码短信通知短信
模板类型验证码类(含动态数字/字母变量)通知类(变量通常为订单号、时间等)
内容要求必须含有效期提示与防泄露提示不得含验证码变量
发送优先级运营商通道优先级最高普通优先级
频控策略强制频控(防刷)按业务配置
审核要求签名 + 模板逐一审核同样需审核,规则略有差异
验证码短信的完整发送链路是怎样的?
  1. 业务方服务端调用短信平台 API,携带 手机号签名模板ID验证码变量
  2. 平台校验:签名/模板状态、频控、黑名单、余额;
  3. 平台生成验证码(或使用业务方传入的验证码)并选择通道下发;
  4. 运营商网关投递至用户手机;
  5. 平台通过回执(状态报告)异步通知业务方送达结果。
最佳实践:验证码由业务方自行生成并传入,平台只负责投递。这样验证逻辑(有效期、错误次数、会话绑定)始终在业务侧闭环,不受通道抖动影响。
什么是短信签名?为什么必须要有?

短信签名是短信内容开头 【】 中的内容,代表发送方身份(如 【密达云通信】)。依据工信部《通信短信息服务管理规定》,所有商业/服务类短信必须携带经审核的签名,用于标识信息来源、便于用户识别与投诉追溯。

什么是状态报告(回执)?

状态报告是运营商返回的投递结果(DELIVRD 成功 / UNDELIV 失败等),通常在提交后秒级至 5 分钟内陆续返回。业务方应通过回调 URL 或轮询接口消费回执,用于:统计到达率、触发重发策略、监控通道质量。

注意:「提交成功」≠「送达成功」。提交成功只代表运营商网关已接收,最终结果以状态报告为准。
验证码的有效期一般设置多长?

行业惯例为 5 分钟(120 秒 ~ 10 分钟均可)。设置过短会增加用户重发率,过长会扩大被暴力破解的时间窗口。建议同时在模板文案中明示有效期。

2

收不到验证码(用户侧排查)

8 条
用户反馈收不到验证码,最常见的原因有哪些?高频

按出现概率排序:

  1. 手机侧拦截:安全类 App / 手机管家把验证码短信当垃圾短信拦截;
  2. 输错号码:用户填了旧号码、家人号码或输错位;
  3. 频控触发:短时间内请求次数超限被平台拒绝(提示「请求过于频繁」);
  4. 黑名单:用户曾回复 TD/退订 或投诉,号码进入运营商黑名单;
  5. 信号/停机:飞行模式、弱信号、欠费停机;
  6. 携号转网缓存:转网后归属运营商数据未同步,被路由到原运营商;
  7. 空号/风险号:号码为空号或被标记为风险号码;
  8. 通道故障:某个运营商通道异常(属于低概率但需优先排除的平台侧问题)。
安卓手机收不到,iPhone 能收到(或反过来),是什么问题?

这与运营商无关,大概率是终端拦截差异

  • 安卓:各品牌自带「骚扰拦截」「智能识别」功能较强,验证码可能被归入垃圾短信文件夹(信息 App → 骚扰拦截 / 垃圾箱);
  • iPhone:检查「设置 → 信息 → 未知与过滤信息」是否将短信过滤到「过滤信息」列表。

引导用户关闭对应拦截开关或将签名加入白名单即可。

用户刚携号转网,收不到验证码怎么办?

携号转网后运营商侧号码归属数据存在最长 48 小时(极端 72 小时)的同步延迟。期间短信可能被路由到原运营商导致丢失。

处理方案:引导用户等待同步完成;紧急场景可提供语音验证码(外呼播报)或邮箱验证作为降级通道。

用户收不到但平台显示「已送达」,怎么回事?
  • 状态报告显示送达但用户没看到 → 大概率被终端拦截且不展示,让用户检查垃圾短信/拦截记录;
  • 运营商回执存在小概率误报(极少数情况),可让用户换机测试;
  • 若批量出现「显示送达但用户均未收到」,应立即升级通道质量问题排查(可能是伪回执通道)。
为什么用户几分钟前还能收到,现在突然收不到了?

优先检查频控:常见策略如「同一号码 1 分钟 1 条、1 小时 5 条、24 小时 10 条」,超限后请求会被直接拒绝且通常不再下发。让用户等待冷却期(如 60 分钟)后重试。若接口返回频控错误码,前端应提示用户剩余等待时间而非让用户反复点击。

用户换了新手机 / 恢复出厂设置后收不到?

多与 SIM 卡或新机拦截策略有关:重插 SIM、确认短信中心号码(SMSC)未被改动、关闭新机的智能拦截。双卡用户注意确认验证码发到了哪张卡、哪张卡开通了短信功能。

同一用户能收到通知短信,但收不到验证码短信?

两类短信可能走了不同模板/不同通道

  • 确认验证码模板状态是否正常(未过期、未下线);
  • 确认使用的签名与模板是否匹配(模板审核时绑定了特定签名);
  • 查看验证码通道的实时到达率监控,是否某运营商通道劣化;
  • 查看该号码的发送记录:是否在提交阶段就被频控/黑名单拦截。
遇到大规模收不到,如何快速判断是不是平台故障?
  1. 到达率曲线:整体到达率是否跌破阈值(如 90%);
  2. 分运营商:是移动/联通/电信单边劣化还是全量劣化;
  3. 用测试号码矩阵(三大运营商各若干)实测;
  4. 确认是通道故障后,切换备用通道并发布公告,同时向受影响客户推送故障通知。
单运营商劣化多为运营商侧故障或通道质量劣化;全量劣化优先怀疑自有服务异常(提交失败、频控误伤、余额耗尽)。
3

延迟与到达率

5 条
验证码短信的正常送达时效是多久?
指标行业基准说明
提交成功率≥ 99.9%平台受理成功占比
秒级到达率≥ 90%5 秒内送达
终态到达率≥ 98%含重试、以回执为准
P95 延迟≤ 10 秒从提交到回执

节假日(尤其春节)运营商信令拥塞,延迟可能显著上升,属正常现象。

短信延迟的常见原因?常见
  • 运营商信令拥塞:晚间高峰、节假日、大促活动期;
  • 终端弱信号:用户在电梯、地库、高铁上,短信暂存在短信中心,恢复信号后补投;
  • 携号转网路由延迟
  • 通道队列堆积:通道商侧积压,需要监控发现并切换;
  • 业务侧排队:发送请求在业务系统消息队列中积压(平台无感知,需自查)。
如何监控和提升到达率?
  • 建立到达率看板:按通道、运营商、小时粒度监控终态到达率;
  • 配置通道自动降级:某通道到达率/延迟劣化时自动切到备用通道;
  • 定期清理号码库:营销或历史沉淀号码中的空号、停机会拉低整体到达率;
  • 对未收到回执的号码做二次补发策略(注意频控与用户感知)。
状态报告一直没回来,算送达了吗?

不算。运营商少量回执会丢失或超时(一般 15 分钟~2 小时未回执即视为未知状态)。建议对「超时无回执」单独打标统计,不纳入失败也不纳入成功,作为独立监控指标。超时无回执比例异常升高时通常是回执链路故障而非发送问题。

为什么大促活动时延迟特别明显?如何提前准备?

大量业务在同一时段集中提交(如整点秒杀),运营商信令与通道同时承压。

活动前准备清单

  • 提前 3~5 个工作日报备活动发送量(向服务商申请通道扩容/独享);
  • 错峰发送:验证码由用户行为触发,可对非验证码类批量短信做错峰调度;
  • 压测发送链路,确认自身服务与队列吞吐;
  • 准备降级方案:语音验证码、邮箱验证。
4

签名与模板审核

6 条
申请短信签名需要什么材料?
签名归属所需材料
公司全称/简称营业执照 + 签名归属证明(如官网/APP 截图可见该名称)
APP 名称营业执照 + APP 上架后台截图(软著或备案更佳)
网站名称营业执照 + ICP 备案信息截图(备案主体需一致)
公众号/小程序营业执照 + 后台账号信息截图
商标名营业执照 + 商标注册证

审核时效一般为 2 小时内(工作日),驳回后修改材料可重新提交。

验证码模板有哪些内容规范?

必须包含以下要素,否则大概率被驳回:

  • 明确的「验证码」字样与变量占位(如 ${code});
  • 有效期提示(如「5 分钟内有效」);
  • 防泄露提示(如「请勿泄露给他人」);
  • 用途说明(登录/注册/找回密码等,可与业务场景关联);
  • 不得含营销、引导下载、链接等内容;
  • 不支持营销类话术混入验证码模板。

标准示例【签名】您的验证码是 ${code},用于 ${action},${expire} 分钟内有效。请勿泄露给任何人。

模板审核被驳回的常见原因?高频
  1. 缺少有效期或防泄露提示;
  2. 变量格式错误(使用了未定义变量、变量嵌套);
  3. 内容与「验证码」类型不符(含通知/营销内容);
  4. 签名与模板不匹配(模板需挂在已审核通过的签名下);
  5. 涉及敏感词(金融、房产等需额外资质);
  6. 签名归属证明材料不清晰或主体不一致。
一个签名可以对应多个模板吗?一个模板可以多个签名共用吗?

一个签名可以申请多个模板(验证码、通知、营销各自独立);一个模板只能在申请时绑定的签名下使用,发送时签名不匹配会返回参数错误。多品牌/多 APP 场景需分别为每个签名申请模板。

模板里的验证码是纯数字好还是数字+字母好?

推荐 6 位纯数字

  • 4 位安全强度不足,8 位输入负担重;
  • 字母易混淆(0/O、1/l/I),短信场景用户需手动输入,纯数字体验最好;
  • 配合 5 分钟有效期 + 错误次数限制(如 5 次锁定)+ 发送频控,6 位数字安全性足够。
签名和模板审核通过后长期有效吗?

长期有效,但存在回收机制:连续 90 天(部分服务商为 30/60 天)未使用的签名/模板可能被下线;签名对应的资质过期(营业执照吊销、备案注销)也会触发失效。建议对在用签名模板建立台账并定期巡检。

5

接口与集成

6 条
发送验证码的基本请求包含哪些参数?
POST /sms/otp/send
{
  "mobile": "13800138000",     // 必填,支持国家码前缀
  "sign": "密达云通信",          // 已审核签名
  "templateId": "OTP_10001",   // 已审核模板
  "params": { "code": "483920", "expire": "5", "action": "登录" },
  "scene": "login",            // 业务场景标识,用于频控统计
  "requestId": "biz-uuid-xxx"  // 幂等键,防止重复提交
}

其中 requestId 幂等键强烈建议传入:用户双击按钮、前端重试时不会重复扣费和下发。

接口返回成功,用户却没收到短信?

接口返回的「成功」通常仅表示提交成功。排查路径:

  1. 用发送记录查询接口拉取该手机号的终态状态(DELIVRD / UNDELIV / 无回执);
  2. UNDELIV → 查看错误码(空号、黑名单、携转等);
  3. DELIVRD → 转用户侧终端拦截排查;
  4. 无回执 → 等待回执超时窗口后再下结论。
常见错误码及含义?
错误码含义处理建议
INVALID_MOBILE手机号格式错误前端校验号码格式
RATE_LIMITED触发发送频控提示用户等待,展示剩余秒数
BLACKLIST号码在黑名单引导用户申诉解除
TEMPLATE_INVALID模板不存在/已失效核对 templateId 与模板状态
SIGN_MISMATCH签名与模板不匹配确认模板归属签名
BALANCE_EMPTY账户余额不足充值并配置余额预警
EMPTY_NUMBER空号/停机提示用户检查号码
CARRIER_ERROR运营商侧失败按回执错误码细分处理
具体错误码以所使用平台文档为准,此处为通用语义对照。
回调(Webhook)通知没收到或丢失怎么办?
  • 确认回调 URL 公网可达、正确响应 200(不要返回 30x 或 404);
  • 回调处理逻辑要快速返回,耗时操作转异步,避免超时被判失败;
  • 平台一般有失败重推(如 1m/5m/30m 递增重试),确认响应体符合要求以触发重推;
  • 建立对账兜底:定时(如每 10 分钟)通过记录查询接口补偿拉取,防止极端情况丢回调。
如何在发送高峰保证业务不丢?
  • 业务侧使用消息队列削峰,消费端限速提交;
  • 设置合理超时(建议连接 3s / 读取 5s)与重试(仅对网络类错误重试,且幂等);
  • 对接多通道/多服务商做容灾切换;
  • 压测确认平台侧配额(QPS)足够,必要时申请提额。
短信接入有 SDK 吗?需要 HTTPS 吗?

主流平台均提供 Java / Go / Python / Node.js / PHP 等 SDK;REST API 全部要求 HTTPS,并使用 AccessKey + 签名(HMAC)鉴权。切勿将 AccessKey 硬编码在前端或客户端代码中——必须由服务端调用发送接口。

6

频控与防刷

4 条
标准频控策略是怎样的?
维度常见阈值
同一手机号1 分钟 1 条 / 1 小时 5 条 / 24 小时 10 条
同一 IP1 小时 20~50 条(视业务而定)
同一用户账号按账号维度叠加限制
图形验证码前置同号第 2 次请求起强制人机校验

频控既保护用户不被骚扰,也直接控制短信成本与被投诉风险。

如何防止验证码接口被恶意刷量?安全
  1. 图形/滑块验证码前置:发送前先通过人机校验;
  2. 行为风控:设备指纹、IP 信誉库、请求频次熵分析;
  3. 业务语义校验:未注册用户请求「找回密码」直接拦截;
  4. 最小化暴露:发送按钮倒计时(60s)+ 前端不暴露完整手机号批量入口;
  5. 监控告警:单 IP/单号段请求量突增自动告警并临时封禁。
验证码错误次数限制应该怎么设?

建议同一验证码 连续错误 5 次即作废,同一账号 10 次错误后锁定 30 分钟。否则 6 位数字空间(100 万)在接口高并发下可能被撞库爆破。注意:校验接口也要有频控,很多安全事件发生在「校验」而非「发送」环节。

验证码被用户转发给了骗子,算安全事故吗?

属于社会工程学诈骗,不是系统漏洞,但产品侧应尽量降低危害:

  • 模板中固定加入「请勿泄露给任何人,包括客服」;
  • 校验时如检测到会话/IP 异常,要求二次验证;
  • 高危操作(改绑手机、改密码)使用双重验证(短信 + 原密码/生物识别);
  • 提供客服话术与快速冻结通道。
7

安全与合规

5 条
发送验证码短信需要哪些资质与实名要求?
  • 企业主体:营业执照(三证合一);
  • 短信签名归属证明(详见第 4 章);
  • 特殊行业补充资质:金融(金融牌照/备案)、物流、医疗等;
  • 依据《网络安全法》与工信部要求,使用短信服务的企业需完成实名认证;
  • 网站类签名需 ICP 备案且备案主体与申请人一致。
验证码短信文案中有哪些内容红线?
  • 禁止包含任何 URL 链接(钓鱼风险,多数通道直接拦截);
  • 禁止营销、促销话术混入验证码模板;
  • 禁止诱导用户回复、转发;
  • 禁止出现「退订回T」以外的不规范指令(验证码类一般无需退订语);
  • 不得冒用他人签名或使用与实际业务不符的名称。
用户回复了退订(TD/退订),会影响验证码短信吗?

会。用户退订后号码进入黑名单,所有类型短信(含验证码)都可能被拦截。这是投诉率最高的客诉场景之一。建议:

  • 验证码类通道与营销类通道隔离,营销退订不影响验证码下发;
  • 提供黑名单自助解除入口(用户回复指定指令或联系客服)。
如何保护验证码在链路中的安全?
  1. 验证码在业务侧存储时使用哈希(HMAC/BCrypt),不明文落库;
  2. 日志脱敏:发送日志中验证码打码(如 48****0);
  3. 通道传输全链路 HTTPS/TLS;
  4. 验证码与会话绑定(sessionId + 手机号 + code 三元组校验),防止 A 号码的验证码用在 B 会话;
  5. 验证成功后立即作废,防止重放。
语音验证码可以作为补充手段吗?有什么注意点?

可以,语音验证码(电话播报)适合作为短信屡次未达时的降级方案。注意:

  • 播报语速适中,支持重听(按键);
  • 同样需要频控与防刷;
  • 成本通常高于短信;
  • 仅作为短信的补充而非替代——用户在会议等场合不便接听。
8

计费相关

3 条
验证码短信怎么计费?提交失败会扣费吗?
  • 计费单位为「条」,按运营商(移动/联通/电信)分档定价,通常有套餐包与阶梯折扣;
  • 提交失败(被频控、模板错误等)不扣费
  • 提交成功后无论用户是否收到,正常按条计费(空号等终端原因 UNDELIV 一般已产生通道成本);
  • 部分服务商对通道故障导致的批量失败提供返还,需保留发送记录申请核对。
如何控制验证码短信成本?
  1. 严格的频控与人机校验,从源头减少无效发送;
  2. 按钮 60 秒倒计时,杜绝用户连点;
  3. 号码有效性预校验(空号检测)用于存量清理;
  4. 到达率监控 + 通道优选,把钱花在到达率高的通道上;
  5. 设置余额预警(如低于 20% 告警),避免余额耗尽导致全量发送失败——这是最贵的「隐性成本」。
如何对账?需要保留哪些记录?

保留字段:requestId、手机号、签名、模板ID、提交时间、回执时间、终态状态、错误码、计费条数。每日与服务商账单按 requestId 对账,差异项(有请求无账单 / 有账单无请求)提交工单核对。建议日志保留 ≥ 180 天。

9

国际短信(海外验证码)

2 条
发国际验证码短信有什么不同?
  • 手机号需带国家码(E.164 格式,如 +855xxxxxxxx);
  • 计费按目的国家/运营商差异极大,且汇率波动会导致价格变动;
  • 部分国家要求本地发件人 ID(Sender ID)注册(如印尼、沙特等),未注册会被改名或拦截;
  • 到达率整体低于国内,建议接入多通道智能路由并按国家维度监控到达率;
  • 内容审核规则遵循目的国法规(部分国家对内容类型有严格限制)。
海外用户收不到验证码,排查思路有何不同?
  1. 确认国家码与号码格式正确(去除前导 0 等);
  2. 查该国家/运营商通道到达率,劣化时切换通道;
  3. 确认 Sender ID 是否在该国注册;
  4. 海外终端拦截与 Wi-Fi 短信(如 iMessage/RCS 优先)问题更多,建议提示用户检查短信 App;
  5. 必要时降级为语音验证码或 WhatsApp OTP 等富媒体通道。

🧭 附:单用户「收不到验证码」排查决策流(客服 SOP)

  1. 确认号码:让用户读出完整手机号(含国家码),核对是否输错、是否换了号码未更新。
  2. 查发送记录:后台检索该号码当日发送记录 —— 无记录 → 频控/黑名单/提交失败,按错误码处理;有记录 → 下一步。
  3. 查回执状态:DELIVRD → 转终端排查(第 4 步);UNDELIV → 按错误码解释(空号/停机等);无回执 → 告知等待并 15 分钟后复查。
  4. 终端排查:检查垃圾短信/拦截记录、短信中心号码、信号与飞行模式、双卡设置。
  5. 仍失败:更换时间重试 → 引导语音验证码/邮箱验证降级 → 收集手机号、时间点、requestId 提交工单深入排查。
  6. 升级条件:同签名模板多用户反馈(≥ 3 例/小时)→ 立即按「平台故障」流程上报通道值班。
未找到匹配的问题,请尝试其他关键词(如「收不到」「频控」「签名」)。
铁布衫MiCPaaS · 云通信知识库 | 本文档持续更新,建议以最新版本为准