为什么中国市场需要单独的验证测试方案?
中国拥有全球规模最大的移动生态之一,其中很大一部分运行在国内平台上,而不是西方团队通常最先测试的全球应用。当地 SIM 卡实行实名登记,因此本地服务把手机号当作强身份信号,对接受哪些号码往往更严格。
这会影响 QA 工程师规划中国线路测试的方式:
- 跨境电商。 阿里巴巴和速卖通上的卖家与买家在注册或修改账户信息时会确认手机号,因此电商团队希望完整看到这些短信的收发过程。
- 中文文案。 国内发送方的验证码通常以简体中文送达,且经常以【】括起的发送方名称开头。如果解析器只查找英文单词 “code”,就会漏掉这类短信。
- 编码。 中文短信以 Unicode 方式传输,因此请用 UTF-8 保存短信正文,并用忽略周围字符的正则提取数字。
用 +86 号码在真实线路上测试,可以在用户发现之前暴露这三类问题,这也正是通往真实中国运营商通道的 OTP 路由的价值所在。
+86 手机号应该如何存储?
中国大陆手机号为 11 位,以 1 开头。与国内拨打需加长途冠码 0 和区号的固定电话不同,手机号完全没有冠码,所以 E.164 格式就是 +86 加上这 11 位数字。
几个规范化习惯能省去日后的排错时间:
- 去掉空格和连字符;用户常常按 3-4-4 分组输入号码。
- 保存前把开头的
0086或86转换为+86,并且绝不要在手机号前加 0。 - 规范化之后校验长度:手机号为 11 位国内号码,不多也不少。
用一列保存标准的 E.164 格式,只在界面边缘做展示格式化。激活返回的号码已经是这种标准形态,正好可以作为你自己规范化函数的单元测试样例。
目前哪些应用可以向中国线路发送验证码?
中国线路目前覆盖超过 1,300 项服务。实时快照中较常用的包括 WeChat、Alibaba、AliExpress、Microsoft & Outlook、LinkedIn、Telegram、WhatsApp、Google(Gmail 和 YouTube)、TikTok、Amazon、Discord、ChatGPT(OpenAI)以及 Claude。
随着我们的运营商合作伙伴增减容量,可用情况在一天之中会变化,所以请把这份列表当作起点。请调用 GET /api/v1/services 和 GET /api/v1/countries 获取最新情况,不要把服务 id 硬编码进测试矩阵。
国家 id 为 cn 时,API 流程是怎样的?
先在开发者控制台创建 Bearer 密钥(前缀为 or_live_),然后让客户端指向 https://otproute.com/api/v1。一次典型的中国 OTP API 调用流程如下,同样的步骤也适用于接收任何受支持服务的中国短信 OTP:
- 调用
GET /api/v1/prices?country=cn&service=wechat,获取你计划测试的组合的实时价格。 - 发送
POST /api/v1/activations,请求体为{"service": "wechat", "country": "cn"},并保存返回的激活 id。 - 把 +86 号码填入被测产品的注册表单。
- 让你的 webhook 接收
activation.sms_received;如果没有配置 webhook,每隔几秒查询一次GET /api/v1/activations/{id}。 - 如果测试中止,调用
POST /api/v1/activations/{id}/cancel,立即释放冻结的款项。
Webhook 请求带有 X-OTPRoute-Signature 头,格式为 t=<unix>,v1=<hex>。请用端点密钥对 <t>.<raw body> 重新计算 HMAC-SHA256,以常量时间比较,并丢弃过期的时间戳。每个账户最多可有 10 个密钥、5 个 webhook 端点,每分钟 300 次请求;完整参考见 API 文档。
不会写代码的人可以订购中国号码吗?
可以。产品经理和客服人员可以完全在控制台中完成:
- 打开 OTP Gateway,选择中国,再选择服务。
- 下单前查看显示的价格。
- 把 +86 号码复制到你要验证的应用中。
- 留意激活卡片;短信一到,内容就会显示在那里。
同样适用 20 分钟窗口和退款规则,所以手动检查本地化的引导页面时,如果应用没有发出任何短信,就不会产生费用。
中国的验证码没有到达时该怎么办?
没有动静通常意味着服务拒绝向该号码发送,或者线路繁忙,而不是你的集成有问题。请冷静地逐步排查:
- 让完整的窗口跑完;有些发送方会按自己的节奏重试。
- 确认该服务是否接受虚拟号码。实行实名制的平台往往不接受,自动退款正是为这种情况准备的。
- 稍作等待后再试,或通过另一条服务线路测试同样的场景。
- 避免在紧凑的循环中反复下单。这会耗尽速率限制,也很少能改变结果。
我们的指南 减少 OTP 投递失败 对重试设计有更深入的讲解。
能长期保留 +86 号码吗?如何计费?
中国没有自助开通的长期号码。Dedicated Numbers 是面向美国和加拿大的产品,每月 $1.95 起,支持接收短信、发送短信和浏览器通话。如果你的团队需要长期使用的中国号码,请发邮件至 [email protected] 咨询;能否提供取决于当地规定,不作承诺。
资金放在一个预付的美元钱包中,没有月费,也无需选择套餐。中国线路的测试从该余额中扣款,你可以用银行卡或 USDT/USDC 充值,每次充值后都会收到邮件发送的 PDF 发票。详情见 定价页面,美国和加拿大号码的介绍见 虚拟号码概览。进行集成开发时,可以申请沙盒模式:它返回模拟的号码和验证码,让流水线无需动用钱包资金即可端到端运行。
常见问题
没有中国 SIM 卡,也能测试微信或阿里巴巴的注册流程吗?
可以,通过 OTP Route 为该服务订购一个 +86 号码,然后在控制台或通过 API 读取验证码。有些平台拒绝虚拟号码,这种情况下激活会自动退款。
OTP Route API 中中国的国家 id 是什么?
凡是需要国家 id 的地方都使用 cn,例如 GET /api/v1/prices?country=cn&service=<id>。
中国的验证短信会用英文发送吗?
国内发送方通常使用简体中文,而全球应用常发送英文或与账户匹配的语言。请围绕数字而不是关键词来构建验证码提取逻辑。
+86 激活会保持多长时间?
20 分钟。如果在关闭前没有收到短信,或者你先取消,全部金额都会退回你的钱包。
中国验证号码适合重复登录吗?
不适合。每次激活只接收一条验证码然后结束,所以它适合注册和引导流程测试,而不适合下个月还需要再次登录的账户。
使用 +86 号码需要遵守哪些规则?
请遵守各平台的条款以及 OTP Route 的《可接受使用政策》。本产品用于测试你自己的验证流程和运营合法的业务账户,绝不能用于批量注册。
CI 任务可以免费使用中国号码吗?
可按需申请,开发账户可切换到沙盒模式,它返回模拟的号码和验证码,让你的短信验证 API 测试免费完成端到端运行。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。