检查清单:你的技术栈为匈牙利 OTP API 测试做好准备了吗?
每个项目过一遍这份清单即可,不必每次测试都过一遍:
- 账号安全。 在注册页面注册,然后在生成任何密钥之前启用 TOTP 双重验证。
- 按环境区分密钥。 在开发者控制台创建
or_live_密钥,每条流水线或每台开发机一个,这样泄露的密钥可以被撤销,而不会影响其他所有人。 - id 放在配置里,而不是代码里。 匈牙利是
hu;从GET /api/v1/services读取服务 id,并把映射保存在配置文件中。 - Webhook 目标。 注册一个 HTTPS 端点(每个账号最多 5 个),并把它的密钥存入你的密钥管理器。
- 预算保护。 让测试套件先调用
GET /api/v1/balance,在资金不足时干净地退出。 - 识别地区的解析。 确保你的电话号码输入框知道地区 HU,因为匈牙利人在国内表单上很少输入国家代码。
QA 测试解决方案页面展示了团队通常如何在测试框架中安排这些内容。
为什么 +36 号码的处理需要专门的测试用例?
匈牙利的国家代码是 +36,国内长途前缀是 06。匈牙利用户经常把手机号输入成 06 30 123 4567 或 06 20 ...,其中 20、30、31、50 和 70 是常见的手机号段。你的表单必须通过去掉 06 把它转换成 +3630...,而不能在国家代码之后保留它。请为以下情形编写明确的用例:
- 国内格式字段中的
06 30 ...; +36 30 ...和0036 30 ...,因为00是国际接入前缀;- 空格、斜杠和连字符,它们在真实输入中以各种组合出现。
匈牙利语是官方语言,一旦账号区域设为匈牙利,许多服务会用匈牙利语发送验证码。字母 ő 和 ű 不属于 GSM 7 位字母表,所以包含它们的匈牙利语消息会以 UCS-2 编码,每个分段能容纳的字符更少。如果你自己的产品发送匈牙利语验证码,这就很重要,也是在测试日志中读取收到的完整文本,而不是只看提取出的数字的一个好理由。匈牙利语单词也很长,所以本地化 QA 应检查手机号步骤及其错误提示在小屏幕上是否仍能完整显示。
测试用的 +36 号码有哪些匈牙利线路可用?
hu 的 OTP 路由目前涵盖 1,600 多项服务。当前快照中常被请求的线路有 WhatsApp、Viber、Facebook、Instagram、Google(Gmail 和 YouTube)、Uber、Airbnb、eBay、Amazon、LinkedIn、Netflix 和 ChatGPT (OpenAI)。
这些线路只是快照;库存在一天之中不断变化,这正是 API 在每次价格请求时都会返回可用情况的原因。请在下单之前立即查询 GET /api/v1/prices?country=hu&service=<id>,而不要缓存旧的答案。
步骤:通过 API 接收匈牙利短信 OTP 验证码
清单完成后,通过短信验证 API 做一次测试最多需要五个调用,全部指向 https://otproute.com/api/v1:
GET /api/v1/prices?country=hu&service=uber,确认线路并记录价格。POST /api/v1/activations,请求体为{"service": "uber", "country": "hu"}。保留激活 id;它是后续一切操作的键。- 把返回的 +36 号码填入应用的验证界面。
- 接收验证码。Webhook 会推送
activation.sms_received;轮询则使用GET /api/v1/activations/{id}。每个任务只选一种,以免两条路径相互竞争。 - 测试失败时,调用
POST /api/v1/activations/{id}/cancel,立即释放资金。
在信任每个 Webhook 之前都要先验证:把 X-OTPRoute-Signature 拆分为 t 和 v1,用端点密钥对 <t>.<raw body> 计算 HMAC-SHA256,以恒定时间比较,并拒绝过旧的时间戳。把 activation.expired 和 activation.cancelled 视为终态,让重试停止。OTP API 集成指南里有一个完整的示例。
给从不接触 API 的同事的步骤
客户成功或市场人员可以使用控制台。打开 OTP Gateway,选择匈牙利和服务,查看显示的价格,确认,然后把 +36 号码粘贴到应用里。验证码会显示在订单本身上。如果 20 分钟内没有任何内容到达,订单会过期,钱包会全额入账,所以失败的尝试不会产生任何费用。
匈牙利验证号码一直没动静的故障排查
在提交工单之前,先逐项检查:
- 号码是以 E.164 提交的吗?
+36之后多出的06是最常见的自己造成的失败。 - 服务接受虚拟号码吗? 有些不接受。自动退款涵盖了这一点,而换用另一条服务线路或邻国线路,通常是最快的出路。
- 你等完窗口时间了吗? 等待不久就取消,可能会丢掉一条正在路上的验证码。让订单走完,然后稍后重试。
- 脚本是不是在猛攻同一条线路? 用退避拉开重试间隔。反复即时下单很少有帮助,还可能触发平台自己的滥用检查。
关于减少 OTP 投递失败的文章讲得更深入。
匈牙利的长期线路、钱包与合规使用
匈牙利没有自助式长期号码。如果运营或客服团队需要,请带着使用场景写信至 [email protected];能否提供取决于当地规定,无法保证。自助式专属虚拟号码仅适用于美国和加拿大的线路,低至 $1.95/月。
OTP Route 从一个预付美元钱包计费:没有月费,没有套餐,可用银行卡或 USDT/USDC 充值,每次充值都会通过邮件发送 PDF 发票。可按请求为集成测试启用带模拟号码和验证码的沙盒模式。号码只应用于测试或运营你自己的产品和合法账号,请尊重各服务的条款,并请记住 OTP Route 的《可接受使用政策》同样适用。
常见问题
没有匈牙利 SIM 卡,我们的 QA 团队能接收匈牙利短信验证码吗?
可以。通过 OTP Gateway 为相关服务订购一个 +36 号码,然后在控制台或通过 API 获取验证码。
API 使用什么国家 id 表示匈牙利?
使用 hu,例如在 POST /api/v1/activations 中使用类似 {"service": "uber", "country": "hu"} 的请求体。
如何转换写成 06 30 123 4567 的号码?
去掉 06 长途前缀并加上 +36,得到 +36301234567。保存这种 E.164 格式,仅在显示时才格式化。
匈牙利线路没有送达验证码,我需要付费吗?
不需要。如果 20 分钟内没有收到短信,或你取消了,全部金额会自动退回你的钱包。
为什么匈牙利语的验证码消息有时看起来和英文的不一样?
匈牙利语文本可能包含 ő 或 ű,这会使消息变成 UCS-2 编码。数字是一样的;变化的只是消息文本及其长度。
我能购买一个可以持有数月的匈牙利号码吗?
没有自助式产品。专属号码仅限美国和加拿大;对于匈牙利,你可以发邮件至 [email protected] 咨询,但不保证能够安排。
OTP Route 在匈牙利支持多少项服务?
撰写本文时有 1,600 多项。请调用 GET /api/v1/countries 或查看控制台以获取当前名单。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。