---
title: "收不到验证码怎么办？短信验证码排查指南"
description: "短信验证码收不到的七类原因与排查表：号码格式、手机设置、发送方 ID、延迟与过期、风控误拦，以及送达报告的解读和备用渠道方案。"
canonical: "https://omnichannels.ai/zh/blog/otp-not-received-troubleshooting/"
language: "zh"
updated: "2026-11-03"
publisher: "BroadNet Technologies"
brand: "OmniChannels.ai"
category: "sms"
primaryQuery: "OTP not received"
keywords: ["收不到验证码", "短信验证码收不到", "验证码迟迟不到", "验证码延迟", "验证码发送失败", "验证码重新发送", "验证码备用渠道"]
published: "2026-11-03"
author: "OmniChannels.ai Editorial Team"
reviewer: "BroadNet Messaging Solutions Team"
readingMinutes: 10
answer: "验证码收不到通常是七类原因之一：号码错误或不是 E.164 格式；手机问题（无信号、漫游、收件箱已满、拦截了发送方）；免打扰设置；运营商过滤了未注册或不被识别的发送方 ID；线路延迟或失败；验证码到达前已过期；风控拦截。请先看送达报告，它通常会指明原因。"
takeaways: ["先看消息的送达状态：DELIVERED 但手机上没有验证码，问题在设备；FAILED 或 REJECTED，问题在号码、发送方 ID 或线路；完全没有状态，问题在您自己的系统。", "号码应以 E.164 格式保存：加号、国家代码，总共最多15位数字。多余的前导零或缺少国家代码，是常见的失败原因，看起来却像网络问题。", "在要求注册的市场，未注册的发送方 ID，或运营商不认识的发送方 ID，可能被过滤。上线前请核对目的国的发送方 ID 规则。", "NIST SP 800-63-4 规定，带外验证码若不在10分钟内使用即失效。设计重发和有效期时，要避免因为短信慢了而让验证码过期。", "风控可能误拦真实用户。请按国家和运营商统计从请求验证码到验证成功的转化率，并增加 WhatsApp 或语音这类第二渠道作为备用。"]
faq: 
  - q: "为什么我的手机收不到验证码？"
    a: "常见原因有：没有信号或漫游受限、收件箱已满、发送方被拦截或过滤、免打扰设置、号码输错，或消息延迟。请重启手机，检查垃圾短信或拦截文件夹，确认账户上的号码，并等待重发倒计时结束后再重新获取验证码。"
  - q: "验证码多久能到？"
    a: "多数在几秒内到达，但取决于运营商和线路，并没有保证。不要承诺具体时间。请显示重发倒计时，让验证码的有效期足够长，以应对较慢的送达，并在第一条消息没到时提供其他渠道。"
  - q: "为什么同一个网络上，有的用户收到验证码，有的收不到？"
    a: "网络很少是全部原因。号码格式、手机设置、被拦截的发送方、漫游和携号转网的差异，都可能让同一家运营商的用户出现分化。请按运营商、国家和错误代码细分送达报告，找出哪一组在失败。"
  - q: "未注册的发送方 ID 会导致验证码无法送达吗？"
    a: "会。在运营商或监管机构要求注册发送方 ID 的市场，未注册的 ID 可能被拦截或替换。请核对目的国的规则，在上线前注册，并在每家主要运营商上测试。我们的团队可以与您一起准备并提交注册。"
  - q: "验证码显示已送达，用户却说没收到，怎么办？"
    a: "DELIVERED 状态表示运营商报告已把消息交给手机或其网络，所以请检查设备：发送方是否被拦截、是否进了过滤文件夹、通知设置，或是否有第二张 SIM 卡。请让用户查看垃圾短信文件夹，然后提供通过其他渠道重发。"
  - q: "防短信泵攻击的措施会拦截真实用户吗？"
    a: "会。频率限制和按国家或号段的拦截能阻止虚假流量，但设得过严也会拒绝真实的人。请定期复查被拦截的请求，记录拦截原因，并给被拦截的用户一条通往第二渠道或客服的明确途径。"
sources: 
  - title: "NIST SP 800-63B-4: Authentication and Authenticator Management"
    url: "https://pages.nist.gov/800-63-4/sp800-63b.html"
  - title: "ITU-T Recommendation E.164: The international public telecommunication numbering plan"
    url: "https://www.itu.int/rec/T-REC-E.164"
  - title: "3GPP TS 23.038: Alphabets and language-specific information"
    url: "https://www.3gpp.org/dynareport/23038.htm"
  - title: "GSMA: Interworking Security"
    url: "https://www.gsma.com/solutions-and-impact/technologies/security/cybersecurity-knowledge-base/interworking-security/"
---

# 收不到验证码怎么办？短信验证码排查指南

Canonical: https://omnichannels.ai/zh/blog/otp-not-received-troubleshooting/
Language: zh
Publisher: OmniChannels.ai by BroadNet Technologies

本指南写给用户反馈“没收到验证码”的产品、工程和客服团队，也写给用户本人。它用一张诊断表，把每种现象与原因、检查方法和解决办法对应起来，然后介绍送达报告、备用渠道，以及用来判断问题是否在好转的指标。关于如何把验证码发好，请阅读我们的[验证码认证消息指南](/zh/blog/otp-authentication-messages-guide/)。

## 为什么收不到验证码？

验证码会在五个环节之一丢失：您的系统、号码、线路、运营商或手机。请从您自己这一侧向外排查，因为每一步在送达报告中留下的痕迹都不同。

1. **您的系统**根本没有发送，或发了两次而第一个验证码被覆盖。
2. **号码**错误、格式不对，或不是手机号。
3. **线路**拒绝、延迟或丢弃了消息。
4. **运营商**因发送方 ID、内容或流量特征而过滤了它。
5. **手机**无法接收或显示：没有信号、漫游、存储已满、拦截了发送方或开启了免打扰。

多数“收不到验证码”的工单最终都落在第2点和第5点，所以第一步检查永远是送达状态。

## 送达状态能告诉您什么？

最终状态能在您做其他测试之前，把排查范围缩小到五个环节之一。送达报告（DLR）是运营商网络为每条消息返回的回执；见[送达回执](/zh/glossary/delivery-receipt/)和我们的[消息送达状态指南](/zh/blog/message-delivery-status-explained/)。

| 您看到的状态 | 先查哪里 |
|---|---|
| 完全没有记录 | 您自己的应用：发送调用失败、被限流或根本没有发起 |
| SUBMITTED 或 SENT，之后没有下文 | 线路或运营商，可能有延迟；等报告窗口过后，再检查线路 |
| DELIVERED | 手机：发送方被拦截、过滤文件夹、通知设置、第二张 SIM 卡 |
| FAILED 或 REJECTED | 号码、发送方 ID 或内容；请阅读错误代码 |

我们平台上的状态有 SUBMITTED、SENT、DELIVERED、READ、FAILED 和 REJECTED，通过 [webhook](/developers/webhooks/) 以统一格式送达您的系统。把原始报告粘贴到[短信送达报告解码器](/zh/tools/sms-delivery-report-decoder/)中，就能翻译错误代码。有些网络从不返回最终报告，所以缺少 DELIVERED 应视为未知，而不是失败。

## 验证码收不到：诊断表

请把这张表当作检查清单。每一行包括现象、可能原因、要做的检查和解决办法。

| 现象 | 可能原因 | 检查 | 解决办法 |
|---|---|---|---|
| 立即 FAILED，提示号码无效 | 号码格式错误 | 把保存的号码与 E.164 对照 | 注册时统一为 E.164；用号码格式化工具校验 |
| 部分国家正常，部分国家失败 | 国家代码后保留了前导零，或保存的是国内格式 | 把失败的号码并排比较 | 去掉长途前缀，加上国家代码 |
| DELIVERED，用户却什么也没看到 | 手机上发送方被拦截，或进了过滤文件夹 | 请用户查看拦截和垃圾短信列表 | 解除拦截；使用固定的发送方 ID |
| 仅在某一家运营商上 REJECTED 或被过滤 | 发送方 ID 在该运营商处未注册或不被识别 | 核对目的国的发送方 ID 规则 | 注册发送方 ID；在每家运营商上测试 |
| 消息晚到几分钟 | 拥塞、线路慢，或手机不在覆盖范围 | 按运营商比较提交时间与送达时间 | 重发规则、更长的有效期、备用渠道 |
| 验证码到了却提示“已过期” | 有效期短于实际送达时间 | 比较送达延迟与验证码有效期 | 延长有效期；重发时让旧验证码失效 |
| 用户在国外，什么也收不到 | 未开启漫游，或所在网络限制消息 | 询问是否开启了数据漫游和短信漫游 | 提供 WhatsApp 或语音验证码作为替代 |
| 触发频率限制规则后真实用户被拦截 | 风控过严 | 按国家和号段复查被拦截请求的日志 | 对已验证的模式放宽规则；增加申诉途径 |
| 号码最近转到了另一家运营商 | 携号转网的号码仍被路由到旧网络 | 运行号码查询 | 发送前使用查询数据 |
| 同一用户只在某张 SIM 卡上失败 | 双卡手机用另一张 SIM 卡接收 | 询问短信默认使用哪个号码 | 在账户上确认号码 |
| 模板里有 emoji 或特殊字符，显示出怪字符 | 编码改变 | 把模板放进字符计数器检查 | 验证码文案保持简洁纯文本，不加 emoji；中文短信本身是 Unicode，单段70个字符（拼接时每段67个） |

有两项值得进一步说明。

### 号码是 E.164 格式吗？

E.164 是国际号码标准：一个加号、国家代码和用户号码，总共最多15位数字（ITU-T E.164）。例如存成 `07700 900123` 的英国手机号是国内格式。转成 E.164 后是 `+447700900123`，去掉了前导零。请在输入时就格式化，只保存一份干净的版本，原始输入仅用于展示。我们的[电话号码格式化工具](/zh/tools/phone-number-formatter/)能展示转换过程，[E.164 术语条目](/zh/glossary/e164/)给出了定义。

### 会是发送方 ID 的问题吗？

会，当市场要求注册或过滤发送方 ID 时。字母数字发送方 ID，即显示品牌名而不是号码的方式，如果目的国要求注册而该 ID 不在运营商的名单上，就可能被拦截或改写。各国规则不同，请使用[发送方 ID 检测工具](/zh/tools/sender-id-checker/)，并阅读我们的[发送方 ID 类型指南](/zh/blog/sms-sender-id-types-explained/)。如果您希望我们与您一起准备并提交注册，请见[注册服务](/zh/services/registrations/)；审批决定仍由运营商和监管机构做出。

## 为什么验证码来得晚，或到达时已过期？

延迟通常来自线路或手机，而过期会把延迟变成失败。NIST SP 800-63B-4 规定，带外验证若不在10分钟内完成即失效，且验证码只能使用一次。这是高安全级别场景的上限，而不是目标值。请选择一个能涵盖正常送达波动、又不会让验证码开放过久的有效期。

实用规则：

- **签发新验证码时，让旧验证码失效**，并告诉用户只有最新的验证码有效。
- **显示重发倒计时**，避免用户反复点击，收件箱里堆满相互冲突的验证码。
- **限制尝试次数**和每个号码的请求次数，以防止猜测和滥用。
- **记录发送时间、送达时间和验证时间**，这样您看到的是真实的延迟，而不是猜测。

## 收不到验证码时，用户可以做什么？

给终端用户的一份简短清单，您可以放在验证页面或帮助内容中：

1. 检查屏幕上显示的号码。号码对吗？国家代码对吗？
2. 检查信号。移到有信号的地方，或开关一下飞行模式。
3. 查看短信应用里的垃圾短信、已拦截或“陌生发送方”文件夹。
4. 确认免打扰或通话和短信过滤没有把消息藏起来。
5. 收件箱已满的话，腾出存储空间。
6. 如果人在国外，请开启通话和短信的漫游，或改用其他方式。
7. 等待重发倒计时结束，然后只重新获取一次验证码。反复请求可能触发限制。
8. 仍然失败，请选择 WhatsApp 或语音来电等其他方式，或联系客服。

## 防短信泵攻击的措施会拦截真实用户吗？

会，而且如果不去衡量，这个代价是看不见的。短信泵攻击（SMS pumping），也叫人为流量膨胀，是攻击者向他们从中获利的号码触发验证码短信的欺诈手段。频率限制、国家白名单、号段拦截和机器人验证等措施能阻止它，但规则过宽会拒绝真实请求，例如来自您通常不服务的国家的新客户。我们的[短信泵欺诈指南](/zh/blog/sms-pumping-fraud-prevention/)介绍了这类攻击；针对这个问题，关键点是：

- **记录每个请求被拦截的原因**，包括国家、号段和规则名称。
- **把被拦截的请求与同一用户或设备之后成功的注册进行比对。**如果第一步被拦截的用户第二次尝试就成功了，说明您的规则在伤害真实的人。
- **给被拦截的用户一条出路**，而不是死路：第二渠道或客服链接。
- **每次营销活动或上线后复查规则**，因为来自新市场的流量一开始看起来会不寻常。

## 如何用送达报告找出规律？

按国家、运营商、发送方 ID、小时和错误代码切分送达数据，找出失败率远高于其他的那个细分。混合的平均值会掩盖薄弱环节。我们的[提高短信送达率指南](/zh/blog/sms-not-delivered-improve-delivery-rate/)更详细地介绍了方法，发送前做 [HLR 查询](/zh/blog/hlr-lookup-number-validation/)可以标记已停用或已更换网络的号码。

| 切分维度 | 峰值暗示什么 |
|---|---|
| 某一家运营商 | 您的发送方 ID 或内容被过滤，或该网络上的线路问题 |
| 某一个国家 | 缺少注册、监管规定，或防泵规则过严 |
| 某一个小时 | 拥塞，或您这边的一次发布 |
| 某一个错误代码 | 报告中点明的具体原因 |
| 某一个模板 | 触发过滤的内容或编码 |

## 短信失败时应该提供什么备用渠道？

在一段简短、固定的等待之后提供第二渠道，并让用户用起来简单。常见选项有：短信重发、WhatsApp 身份验证模板，或把验证码读出来的语音来电。

| 备用方式 | 适用情形 | 注意事项 |
|---|---|---|
| 短信重发 | 第一条消息延迟或被删除 | 多次重发看起来像滥用 |
| WhatsApp 验证码 | 用户使用 WhatsApp 且已授权 | 身份验证是 Meta 的模板类别，有自己的规则 |
| 语音验证码 | 短信被拦截，或用户更喜欢接电话 | 使用起来较慢；语音价格请联系销售 |

我们对 [WhatsApp 验证码与短信验证码](/zh/blog/whatsapp-otp-vs-sms-otp/)的比较、[语音验证码指南](/zh/blog/voice-otp-guide/)和[渠道回退策略](/zh/blog/channel-fallback-strategy/)指南，展示了如何排列这些步骤的先后。WhatsApp 验证码必须作为 Meta 身份验证类别的模板发送，所以请按身份验证模板的格式构建，而不是使用自由文本。

## 应该监控什么？

跟踪验证码转化率：验证码请求中以验证成功告终的比例。公式如下：

`验证码转化率 = 验证成功次数 / 验证码请求次数`

按国家、运营商、渠道和发送方 ID 分别计算，并在任何一个细分明显低于其平时水平时设置告警。再配合送达延迟中位数和被风控规则拦截的请求占比。这三项合在一起，能告诉您问题出在触达、速度，还是您自己的风控。

## 常见错误有哪些？

- **先怪运营商。**许多失败其实是格式或手机问题，送达报告本可以显示出来。
- **在验证码短信里加多余内容。**emoji 和促销文字会改变编码并招致过滤。像 `【品牌】验证码482913，10分钟内有效，请勿向任何人透露。` 这样的简洁消息（31个字符）只占一段 Unicode 短信（70个字符以内）。
- **没有重发次数限制。**这会招致滥用，也让用户面对多个有效验证码而困惑。
- **只有单一渠道。**如果短信是唯一的选项，每个短信问题都会变成注册问题。
- **不做衡量。**没有按细分统计的转化率，您只能从客服工单中得知失败。

## OmniChannels.ai 如何帮助您

由 BroadNet 提供支持的 OmniChannels.ai，通过运营商直连发送验证码，并以统一格式通过 webhook 把送达状态返回您的系统。您可以按场景设置备用顺序，例如 WhatsApp 然后短信或语音，并在发送前使用 HLR 和号码查询。我们的团队会与您一起准备并提交发送方 ID 注册。请见[验证码与通知解决方案](/zh/solutions/otp-notifications/)，阅读 [webhook 文档](/developers/webhooks/)，或通过[开发者页面](/zh/developers/)申请测试权限。
