你的发布目标是比利时,但测试设备全是外国的
一个常见的场景:产品在本国市场运行良好,比利时是路线图上的下一站,而 QA 负责人发现每部测试手机插的都是外国 SIM 卡。借布鲁塞尔同事的手机能用一次,随后他的私人号码就被卡在了预发布账户上,回归测试套件也依然无法无人值守地运行。
OTP Route 用它的 OTP Gateway 消除了这个瓶颈。你选择一个服务和比利时,得到一个只用于一个验证码的 +32 号码,并从控制台或你自己的代码中读取验证码。没有任何人的私人号码会绑定到测试登录上,而同一步骤也可以在夜间的流水线里运行。QA 测试指南介绍了团队如何把它嵌入现有的测试计划。
目前哪些服务会向 +32 号码发送验证码?
比利时线路目前列出超过 1,700 项服务。最新快照中比较热门的有 WhatsApp、Telegram、Google (Gmail & YouTube)、Facebook、Instagram、TikTok、LinkedIn、Microsoft & Outlook、Amazon、Uber、Signal、Viber、Netflix、Airbnb 和 eBay。
库存会在一天中变化,所以请把网页上的任何列表都当作一张快照。你的集成应该在需要号码的时候向 API 询问当前可用的内容,而不是在测试数据里写死服务列表。
如何把比利时 OTP 路由接入自动化测试?
所有调用都经由 https://otproute.com/api/v1,使用在开发者控制台生成、前缀为 or_live_ 的 Bearer 密钥。一个账户最多可持有 10 个密钥,便于给预发布、CI 和本地笔记本分别分配凭据,频率限制为每分钟 300 次请求。
- 获取
GET /api/v1/services和GET /api/v1/countries并缓存;比利时的 ID 是be。 - 在运行花钱之前,用
GET /api/v1/prices?country=be&service=linkedin读取当前价格。 - 用
POST /api/v1/activations创建订单,请求体为{"service": "linkedin", "country": "be"}。响应中包含激活 ID 和需要输入注册表单的 +32 号码。 - 让你的比利时测试阻塞等待
activation.sms_received事件,或者轮询GET /api/v1/activations/{id},但不要过于频繁。 - 如果测试中止,调用
POST /api/v1/activations/{id}/cancel,资金会立即退回。
Webhook 投递带有 X-OTPRoute-Signature: t=<unix>,v1=<hex>。请用端点密钥对 "<t>.<raw body>" 计算 HMAC-SHA256,用恒定时间比较,并丢弃时间戳过期的请求。API 参考列出了每一个字段。
+32 号码应该如何存储,才能不让格式问题破坏测试?
在比利时国内,手机号带着开头的长途冠码 0 书写,通常是 04xx 加另外六位数字,人们还会用空格、斜杠或点来分组。在国际格式中,0 消失,由 +32 取而代之,所以 04xx 变成 +32 4xx。有些用户还会输入欧洲拨打国际电话时使用的 0032 前缀。
请保存一个不带分隔符的标准 E.164 字符串,并写一个测试,把这三种输入方式都送进你的手机号输入框,并期望得到相同的存储值。这一项检查就能在比利时客户看到之前,抓出相当多的注册流程 bug。
语言也很重要。荷兰语、法语和德语都是官方语言,短信验证码通常以发送服务选择的语言到达,往往基于应用或设备设置。分别用荷兰语界面和法语界面各跑一遍流程,可以确认你的解析器不依赖英语措辞。
比利时的验证码没有到:现在怎么办?
每次激活会保持 20 分钟,只有短信到达时才收费。如果窗口关闭时仍无短信,或你先取消了,全部金额会自动退回钱包,你的 Webhook 也会收到 activation.expired 或 activation.cancelled。
验证码缺失时:
- 让窗口走完,而不是几秒后就取消;有些服务发送得比较晚。
- 确认该服务是否接受虚拟号码,因为有些会拒绝,这正是设立退款的原因。
- 稍后重试,或选择更适合你测试用例的其他服务线路。
- 不要在紧凑循环中反复下单;加入退避和重试次数上限。
关于减少 OTP 投递失败的文章更深入地介绍了重试设计。
客服或运营团队不写代码也能订购 +32 号码吗?
可以。控制台为从不接触 API 的人提供同样的流程:
- 用电子邮箱和 6 位邮件验证码,或通过 Google 登录注册,然后启用 TOTP 双重验证。
- 给钱包充值。
- 选择比利时和服务,查看屏幕上显示的价格,然后确认。
- 把 +32 号码输入你正在验证的应用,并在控制台中等待验证码。
这适合帮客户办理比利时企业资料入驻的代理机构,也适合需要一次验证、又不想向工程团队提交工单的运营负责人。
有永久的比利时号码吗?计费如何运作?
比利时没有自助式的长期号码。专用号码是美国和加拿大的产品,每月 $1.95 起。如果你的团队需要长期使用的比利时号码,请发邮件至 [email protected] 询问;能否提供取决于当地规定,无法保证。
计费使用一个预付费美元钱包,按量付费,没有月费,也无需选择套餐。比利时的测试支出可以用银行卡或 USDT/USDC 充值,每次充值后会通过电子邮件发送 PDF 发票,供你的财务团队使用。做集成开发时,可应要求把开发账户切换为沙盒,让模拟的号码和验证码来演练你的代码,而不动用钱包资金。完整的详情见价格页面。
请只把比利时号码用于你自己的产品和合法账户,遵守各服务的条款,并牢记 OTP Route 的可接受使用政策同样适用。
常见问题
不买当地 SIM 卡,我能检查我们的比利时注册流程吗?
可以。为你正在测试的服务订购一个 +32 号码,输入到注册表单,然后在控制台或通过 API 读取验证码。
API 中比利时使用什么国家 ID?
比利时是 be,所以典型的请求是 POST /api/v1/activations,请求体为 {"service": "whatsapp", "country": "be"}。
比利时验证号码要多少钱?
+32 验证码每个 $0.20 起,具体金额随你选择的服务而变化。下单前请调用 GET /api/v1/prices 或在控制台查看确切金额。
如果 +32 的验证码没有送达,我会被扣费吗?
不会。如果 20 分钟窗口内没有任何短信到达,或你取消了订单,全部金额会自动退回你的钱包。
我们的数据库应该保留比利时手机号开头的 0 吗?
请存储 E.164 格式,它去掉了长途冠码 0,以 +32 开头。保存之前,请把用户输入的任何内容都规范化为这种格式。
我能保留同一个比利时号码用于以后登录吗?
不能。每个 OTP Gateway 号码只负责一个验证码。长期专用号码只在美国和加拿大提供;比利时的号码请发邮件至 [email protected] 询问。
有没有不动用钱包资金就能搭建集成的办法?
请申请把开发账户切换为沙盒,它会返回模拟的号码和验证码,用于端到端测试。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。