团队里没人持有波黑 SIM 卡时,如何验证 +387 注册

国际区号 +387OTP Gateway,每条验证码低至 $0.20专属号码:仅限美国和加拿大API 标识: ba
快速解答

可以。OTP Route 通过 OTP Gateway 让你接收波斯尼亚和黑塞哥维那(+387)验证码,既可以在网页控制台中查看,也可以通过 REST API 和签名 webhook 以编程方式获取,每条验证码 $0.20 起。你选择一个服务和国家 ID ba,获得一个用于接收一次验证码的号码,只有验证码在 20 分钟窗口内到达,费用才会保留。

版本发布需要 +387 测试,但 SIM 卡躺在萨拉热窝的抽屉里,怎么办?

这是面向西巴尔干地区发布产品的团队常遇到的困境。产品经理想要证明波黑用户能够注册,QA 负责人的清单里有一条“用本地号码验证”,而唯一的实体 +387 SIM 卡属于去年春天离职的同事。

团队陷入这种处境的常见原因:

  • 区域性上线:波斯尼亚和黑塞哥维那与克罗地亚、塞尔维亚、黑山一起上线,每个市场的注册路径都需要单独检查。
  • 海外侨民客户:许多住在德国、奥地利、瑞典等地的人仍保留 +387 号码,因此金融科技或类电信产品可能会遇到在注册时从未踏足该国的用户使用波黑号码。
  • 本地化 QA:波斯尼亚语、克罗地亚语和塞尔维亚语都是官方语言,日常使用中拉丁字母和西里尔字母并存,所以文案和表单校验值得做一次真实的端到端检查。

与其四处邮寄 SIM 卡,不如让 OTP Route 为你处理 OTP 路由:OTP Gateway 给你一个用于单次验证的 +387 号码,并通过测试框架可以调用的短信验证 API 把收到的短信传回给你。

哪些应用和平台能向波黑验证号码发送验证码?

覆盖范围是实时快照,所以请把它当作起点,而不是固定菜单。截至撰写时,波斯尼亚和黑塞哥维那的线路包括 Viber、WhatsApp、Telegram、Google (Gmail & YouTube)、Facebook、Instagram、TikTok、Signal、Microsoft & Outlook、LinkedIn、Discord、Uber、Amazon 和 eBay。

该国合计提供超过 1,600 个服务。如果你需要的服务不在这里,请先查看实时列表。Viber 在巴尔干地区比在许多其他地区更重要,如果你自己的产品除短信外还通过即时通讯渠道发送验证码,这一点值得记住。由于可用性在一天中变化,请向 API 查询当前选项,不要在测试套件里写死列表。

波黑 OTP API 的流程是怎样的,逐个调用来看?

做波黑测试时,把客户端指向 https://otproute.com/api/v1,并把 or_live_ 密钥作为 Bearer 令牌传入。密钥在开发者控制台创建;一个账户最多可持有 10 个密钥和 5 个 webhook 端点,上限为每分钟 300 个请求。

  1. 调用一次 GET /api/v1/services 和 GET /api/v1/countries,缓存这些 ID,并确认 ba 在列表中。
  2. 用 GET /api/v1/prices?country=ba&service=<id> 查看成本,让你的任务在花钱之前把确切数字记入日志。
  3. 发送 POST /api/v1/activations,请求体为 {"service": "<id>", "country": "ba"}。响应中包含激活 ID 和要输入被测应用的 +387 号码。
  4. 等待 activation.sms_received webhook;如果你的运行环境无法接收入站流量,就以适度的间隔轮询 GET /api/v1/activations/{id}。
  5. 如果测试中止,用 POST /api/v1/activations/{id}/cancel 释放号码,资金会立即退回。

对于 webhook,读取 X-OTPRoute-Signature 请求头(t=<unix>,v1=<hex>),用端点密钥对 <t>.<raw body> 计算 HMAC-SHA256,以恒定时间比较,并丢弃时间戳过期的请求。由于事件以激活 ID 为键,同一个 +387 验证码被投递两次时只应写入一次。OTP API 集成指南更深入地讲解了重试和错误处理。

支持或运营团队有免代码的方式吗?

有。没有 API 权限的人可以在浏览器里完成同样的事:登录,打开 OTP Gateway,选择波斯尼亚和黑塞哥维那以及服务,查看价格并确认。号码会显示在屏幕上,收到短信后,验证码会出现在它旁边。这适合客服人员复现客户的注册问题,也适合运营负责人在手机号变更后检查合作伙伴门户。

我们该如何存储 +387 号码并解析波黑短信文本?

在国内,波黑号码拨打时带有 0 中继前缀,手机号码通常以 06 开头。在 E.164 中这个零会消失:本地写作 061 加六位数字的号码,会变成 +387 61 加这六位数字。只存储 E.164 形式,输入时去掉空格、短横线和斜杠,并拒绝国家代码之后仍带前导零的内容。

验证短信可能是英文,也可能是当地语言之一,用西里尔字母写成的短信完全有可能。请用数字模式而不是搜索特定词语来提取验证码,并确保日志保持 UTF-8 完整,这样调试失败的运行时,č、ć、š、ž 等变音符号才不会被弄乱。

如果测试运行一直收不到验证码怎么办?

验证码没到不会产生费用。如果 20 分钟内没有短信到达,或者你先取消,全部金额会自动退回钱包。遇到这种情况时:

  • 让窗口跑完,不要立刻重新下单;迟到的短信仍然有效。
  • 稍后再试,或者为同一场景选择另一条服务线路。
  • 确认目标服务到底接受不接受虚拟号码;有些会拒绝,这正是退款存在的原因。
  • 避免在 CI 里用紧凑的循环下单,那样只会消耗速率限制,不会提高成功的几率。

降低 OTP 送达失败率介绍了通常有帮助的做法。

能长期保留波黑号码吗?账单怎么算?

自助产品中不行。专用虚拟号码从钱包续费,每月 $1.95 起,只在美国和加拿大即时销售。如果你的团队确实需要长期的 +387 号码,请发邮件至 [email protected];是否可行取决于当地规定,也不承诺一定能安排。

网关的账单是单一的预付美元钱包,没有月费,也无需选择套餐。可以用银行卡或 USDT/USDC 稳定币充值;每次充值的 PDF 发票都会发到你的邮箱。做集成工作时,可按要求把开发账户切换为沙盒,它会返回模拟的号码和验证码,让你的流水线在不动用钱包资金的情况下运行。当前费率见定价页面,你也可以用邮箱验证码或 Google 登录创建账户。

常见问题

没有本地 SIM 卡,也能测试我的应用的波黑注册流程吗?

可以。通过 OTP Gateway 为你的服务订购一个 +387 号码,输入到你的应用中,然后在控制台或从 API 读取验证码。

OTP Route 对波斯尼亚和黑塞哥维那使用什么国家 ID?

ID 是 ba。创建激活时把它作为 country 字段传入,查询价格时作为 country 查询参数传入。

+387 验证码没到我要付费吗?

不用。20 分钟窗口内没有任何短信到达,或者你取消了,全部金额都会自动退回钱包。

保存波黑手机号码时应该保留前导零吗?

不应该。请以 E.164 保存,即 +387 后接去掉本地中继零的号码。

用于测试的 +387 号码适合下个月还要再登录的账户吗?

不太适合,因为每个网关号码只对应一次验证。需要重复登录时,美国或加拿大的专用号码是自助可选的方案;波黑的长期号码,请发邮件向团队咨询。

在 CI 中运行波黑 OTP 测试可以不花钱吗?

可以,为开发账户申请沙盒模式即可。它会返回模拟的号码和验证码,因此包括 webhook 在内的整个流程都可以免费演练。

这些号码的使用有规则限制吗?

有。请遵守各服务的条款,只把号码用于你自己合法的产品和账户,并请注意 OTP Route 的《可接受使用政策》适用于每一笔订单。

服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。

几分钟内路由您的第一条 OTP

创建免费账户,为美元钱包充值,然后在控制台或通过 API 订购号码。无月费。