乌克兰的测试用例需要一次性号码还是长期线路?
请先回答这个问题,因为它决定了其他一切。一次性 OTP Gateway 号码只接收一个验证码,然后关闭。长期线路则是你持有的号码,数月之后还能用它再次登录。
对乌克兰来说答案很简单:OTP Gateway 是自助开通的选项。没有自助开通的乌克兰专属号码。长期专属号码仅在美国和加拿大提供,每月 $1.95 起,适合需要持续登录的预发布账户或共享的团队恢复线路。如果你确实需要持久的 +380 线路,请发邮件至 [email protected];能否提供取决于当地规定,不作承诺。
所以实际的划分是:用 +380 一次性号码做注册和手机号步骤的 QA;如果测试账户必须经得起再次验证,则考虑美国或加拿大的线路是否适合该测试。临时号码与专属号码的对比文章逐一分析了各自的取舍。
工程团队为什么要用 +380 号码测试?
乌克兰拥有庞大的软件工程社区,许多国际产品团队里都有乌克兰的开发者和测试人员。除此之外,还有几种情况反复出现:
- 乌克兰语 QA:乌克兰语是国家语言,对引导流程进行本地化的团队想看到周围带有西里尔文字的真实手机号步骤。
- 海外侨民用户:持有 +380 号码的人现在生活在波兰、德国和其他欧洲国家,所以在别处上线的应用在注册时依然会遇到乌克兰号码。
- 以消息为主的流程:Telegram 和 Viber 在乌克兰使用广泛,这使它们成为与二者集成的产品常见的测试对象。
验证短信本身可能以乌克兰语、英语或其他语言到达,取决于服务和账户设置,因此请用模式提取数字,而不是匹配固定词语。
+380 号码应该如何规范化?
在国内,乌克兰号码写作冠码 0 加九位数字,例如 0XX XXX XX XX 的形式。在国际格式中,零被去掉:+380 加九位国内号码。请注意,国家代码本身以 0 结尾,这会让一些手写的验证器感到困惑。
指导原则:
- 只持久化 E.164 字符串;在显示时再用空格或冠码零格式化。
- 如果用户在选择 +380 之后输入了
0…,正好去掉一个开头的零。 - 留意
+3800…,这表明冠码没有被去掉。 - 使用维护良好的库来验证长度,而不是从别处复制的正则表达式。
乌克兰验证号码可以接收哪些服务?
实时快照统计显示乌克兰有超过 1,500 项服务。热门的有 Telegram、Viber、WhatsApp、Signal、Google (Gmail & YouTube)、Facebook、Instagram、TikTok、Discord、LinkedIn、Microsoft & Outlook、Uber、ChatGPT (OpenAI) 和 Claude。
提供的内容在一天中会变化,所以请把它当作示例,让 API 告诉你当前有哪些可用。
乌克兰 OTP API 的调用如何衔接?
对 +380 号码的请求发送到 https://otproute.com/api/v1,使用在开发者控制台生成的 or_live_ Bearer 密钥签名。乌克兰的国家 ID 是 ua。
一个清晰的顺序:用 GET /api/v1/services 和 GET /api/v1/countries 查出 ID;从 GET /api/v1/prices?country=ua&service=<id> 读取费用和可用性;用 GET /api/v1/balance 确认资金;然后使用 {"service": "viber", "country": "ua"} 发送 POST /api/v1/activations。响应中包含 +380 号码和激活 ID。
对于投递,可以在轮询 GET /api/v1/activations/{id} 和订阅 activation.sms_received、activation.expired、activation.cancelled 的 Webhook 之间选择。每个 Webhook 都带有 X-OTPRoute-Signature: t=<unix>,v1=<hex>;请用端点密钥对 <t>.<raw body> 计算 HMAC-SHA256 来验证,拒绝过期的时间戳,并让每个激活 ID 只处理一次。一个账户允许 10 个密钥、5 个端点和每分钟 300 次请求。完整细节见文档。
非开发者的控制台路径是什么?
客服和增长人员可以完全跳过 API。在控制台中打开 OTP Gateway,选择乌克兰和服务,检查显示的价格,然后下单。把 +380 号码填入应用,请求短信,验证码到达时会出现在激活页面上。
验证码没有到达怎么办?计费如何处理?
一次激活会保持开启 20 分钟,只有验证码到达时你才需要付费。如果窗口空着关闭,或者你调用了 POST /api/v1/activations/{id}/cancel,全部金额都会退回钱包。
如果验证码缺失,请等窗口结束,然后稍后重试或换用另一条服务线路。检查该服务是否拒绝虚拟号码,不要在紧凑的循环中重复下单。
资金来自一个预付美元钱包,没有月费。银行卡和 USDT/USDC 都可以用来充值,每次充值之后都会有一份 PDF 发票发到你的邮箱。根据请求,开发账户可以运行在沙盒模式下,使用模拟的号码和验证码,这在搭建 CI 流水线时很有用。OTP Route 仅用于你自己的合法产品和账户:请遵守各服务的条款以及可接受使用政策。
常见问题
没有乌克兰 SIM 卡,也能接收乌克兰短信 OTP 验证码吗?
可以。在 OTP Gateway 订购一个 +380 号码,然后在控制台或通过 API 读取验证码。
OTP Route 对乌克兰使用什么国家 ID?
在价格查询以及 POST /api/v1/activations 的请求体中使用 ua。
冠码 0 属于 +380 号码的一部分吗?
仅在国内拨号时。在 E.164 中,你保存 +380 加九位数字,不带额外的零。
乌克兰验证号码要多少钱?
价格每个验证码 $0.20 起,API 会为每项服务返回准确的实时数字。
我能保留 +380 号码用于以后的登录吗?
没有自助开通的长期乌克兰线路。专属号码是美国和加拿大的产品;其他情况请发邮件至 [email protected] 咨询。
如果 Telegram 一直没发验证码,我会损失金钱吗?
不会。如果 20 分钟窗口内没有验证码,费用会自动退回你的钱包。
我可以在 CI 中端到端测试乌克兰语引导流程吗?
可以,在测试套件中调用 API 即可;沙盒账户还能让你先用模拟验证码演练流程。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。