你需要一个丹麦验证码,还是一个能长期保留的号码?
在编写任何集成代码之前先想清楚这一点,因为 OTP Route 的两款产品解决的是不同的问题。
- OTP Gateway 提供一个用于单次验证的 +45 号码。你下单,在被测应用里触发短信,读取验证码,这个号码就用完了。它适合注册测试、回归测试,以及对丹麦引导页面的一次性检查。
- 专属虚拟号码(Dedicated Virtual Numbers) 是在续费期间归你保留的线路,支持收发短信和浏览器通话。这类线路仅限美国和加拿大号码,每月 $1.95 起。
目前没有自助开通的丹麦长期号码。如果你的团队确实需要一条长期属于自己的 +45 线路,请写信到 [email protected] 咨询;能否安排取决于当地规定,我们不作任何承诺。对大多数丹麦 QA 工作而言,Gateway 本来就是合适的工具。我们的文章临时号码与专属号码比较了两者在北欧测试计划中的用法。
+45 Gateway 号码可以验证哪些应用?
丹麦线路目前覆盖 1,800 多项服务。今天的快照中,热门服务包括 WhatsApp、LinkedIn、Uber、Telegram、Google (Gmail & YouTube)、Microsoft & Outlook、Signal、Discord、ChatGPT (OpenAI)、Amazon、Airbnb 和 Netflix。
由于我们的运营商合作伙伴会在一天中增减容量,可用情况会不断变化,所以请把这份名单当作起点,而不是合同;好的 OTP 路由应当去查询当前库存,而不是想当然。任何时刻的权威答案都来自 API 或控制台的下单页面,它们只会提供此刻可以满足的组合。
丹麦 OTP API 从头到尾的流程是怎样的?
所有调用都发往 https://otproute.com/api/v1,使用以 or_live_ 开头的 Bearer 密钥,该密钥在开发者控制台生成。一个账户最多可持有 10 个密钥,因此可以让预发布环境、CI 和本地笔记本各用一套凭据,并分别吊销。
典型流程从 GET /api/v1/balance 开始,这样测试集在钱包为空时可以尽早失败。接着,GET /api/v1/prices?country=dk&service=<id> 返回当前价格,以及该组合是否有库存。下单本身是 POST /api/v1/activations,请求体类似 {"service": "linkedin", "country": "dk"};响应包含激活 id 和要填入你产品的 +45 号码。
获取验证码时,可以轮询 GET /api/v1/activations/{id},也可以让 Webhook 端点订阅 activation.sms_received。Webhook 带有 X-OTPRoute-Signature 请求头(t=<unix>,v1=<hex>),即用端点密钥对 <t>.<raw body> 计算的 HMAC-SHA256;请验证它并丢弃过期的时间戳。如果测试中止,用 POST /api/v1/activations/{id}/cancel 释放订单。速率限制为每分钟 300 次请求,完整参考资料见文档。
丹麦号码和丹麦短信有什么特别之处?
丹麦采用封闭编号方案:用户号码为八位数字,没有中继前缀,因此国内和国际格式的区别只是前面的 +45。当你从测试中保存一个丹麦验证号码时,请按 E.164 存为 +45 加这八位数字。丹麦人通常两位一组书写,例如“12 34 56 78”,所以你的规范化程序应当先去掉空格和点再校验,而不是直接拒绝输入。
有一个不易察觉的陷阱:法罗群岛使用 +298,格陵兰使用 +299,尽管两者都属于丹麦王国。如果国家选择器把所有说丹麦语的用户都映射到 +45,就会给这些客户生成错误的号码。法罗群岛线路正因如此是一个独立条目。
当账号区域设置为丹麦时,验证短信通常是丹麦语,但许多国际应用会回退到英语。Æ、Ø 和 Å 属于 GSM 7 位默认字符集,所以仅凭丹麦语措辞不应使你自己的模板切换到更长的 Unicode 编码。团队在北欧上线、检查引导页面的丹麦语翻译,或从其他地方的运营中心支持丹麦客户时,通常会在这里做测试。
没有 API 权限的人可以订购丹麦号码吗?
可以。产品经理、客服主管和代理机构的员工完全可以在浏览器里完成:
- 在控制台打开 OTP Gateway,选择丹麦。
- 选择服务;确认之前会显示实时价格。
- 把 +45 号码复制到你要检查的注册或登录表单中。
- 在激活卡片上等待,短信到达后验证码会显示在那里。
20 分钟的窗口从下单时开始计算。如果这段时间内没有收到任何内容,或你先行取消,全部金额会自动退回钱包。只有验证码实际送达时才会收费。
+45 验证码一直没出现时该怎么办?
没有动静通常有普通的原因:有些服务拒绝虚拟号码,有些会限制同一设备或 IP 的重复尝试,有些线路则暂时拥堵。合理的处理顺序如下:
- 先让窗口走完再评价线路;过早取消会丢弃一个可能仍在路上的验证码。
- 确认该服务在你测试的操作中接受虚拟号码。
- 稍后重试,或在邻近线路(例如瑞典)上测试同样的流程。
- 避免在短时间内反复下单。两次尝试之间退避一段时间,以免测试程序对目标服务造成冲击。
送达失败指南更深入地介绍了重试逻辑。丹麦测试同样受各目标服务条款的约束,OTP Route 的《可接受使用政策》适用于每一笔 +45 订单。
丹麦 OTP 测试如何付费?
使用一个预付费美元钱包,没有月费,也没有套餐。可通过银行卡或 USDT/USDC 稳定币充值,每笔充值都会通过邮件发送 PDF 发票,财务团队会很满意。价格页面说明了按验证码收费的计算方式。
如果你还在对接集成,可以申请把开发账号切换为沙盒模式:它会返回模拟的号码和验证码,这样无需动用钱包资金就能走通整个流程。准备好之后,用邮箱加 6 位验证码或 Google 登录创建账号,并为团队登录启用 TOTP 双重验证。
常见问题
没有本地 SIM 卡,也能测试我的应用的丹麦注册流程吗?
可以。在 OTP Gateway 订购一个 +45 号码,填入你的注册表单,然后在控制台或通过 API 读取验证码。
丹麦在 OTP Route API 中的国家 id 是什么?
是 dk。把 dk 作为 GET /api/v1/prices 的 country 参数,以及发送给 POST /api/v1/activations 的 JSON 中的值。
我能买一个可以保留数月、用于测试的 +45 号码吗?
无法自助开通。长期的专属号码只提供美国和加拿大;如需丹麦线路,请发邮件至 [email protected],团队会告诉你是否有可能。
丹麦电话号码使用前导零吗?
不使用。丹麦没有中继前缀,有效号码就是 +45 加八位数字。
如果丹麦短信一直没到,会被扣费吗?
不会。如果 20 分钟内没有收到验证码,或你取消订单,全部金额会自动退回你的钱包。
我的 Webhook 应该监听哪些短信验证 API 事件?
对于 Gateway 订单,请处理 activation.sms_received、activation.expired 和 activation.cancelled,在验证签名请求头之后,以激活 id 为键。
每个丹麦服务都会接受 OTP Route 的号码吗?
没有任何提供方能够保证这一点,因为有些服务会拒绝虚拟号码。这正是未使用的订单会退款的原因。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。