+962 号码的请求顺序是怎样的?
短信验证 API 是纯 REST,位于 https://otproute.com/api/v1,使用你在开发者控制台生成的、以 or_live_ 为前缀的 Bearer 密钥。大多数集成在约旦场景下遵循以下顺序:
- 查询:
GET /api/v1/services和GET /api/v1/countries返回各个标识符。约旦是jo;像 Telegram 这样的服务是telegram。 - 查价:
GET /api/v1/prices?country=jo&service=telegram返回该组合当前的价格以及能否下单。 - 下单:
POST /api/v1/activations,请求体为{"service": "telegram", "country": "jo"},预留一个号码并返回其 activation id。 - 获取:每隔几秒轮询
GET /api/v1/activations/{id},或者让 Webhook 把结果推送给你。 - 清理:
POST /api/v1/activations/{id}/cancel会释放你不再需要的激活并退款。
GET /api/v1/balance 很适合放在测试运行开头作为检查,这样当钱包余额不足时,任务会尽早失败并给出明确提示。完整参考请见文档。
如何确认某个 Webhook 确实来自 OTP Route?
每个事件(例如 activation.sms_received 或 activation.expired)到达时都带有形如 t=<unix>,v1=<hex> 的 X-OTPRoute-Signature 请求头。你的服务器使用该端点的密钥对 "<t>.<raw body>" 计算 HMAC-SHA256,并将结果与 v1 比较。如果两者不同,或者 t 离现在太久,就拒绝该请求;这样可以防止重放攻击。
由于重试可能把同一个事件投递两次,请以 activation id 为键来处理,并把第二份副本视为空操作。在本地开发时,由于公网 Webhook 地址不太方便,轮询依然是可靠的备选方案。基于 Webhook 的 OTP 捕获一文介绍了排队与重试。
约旦线路上可以验证哪些应用?
约旦列出了超过 1,700 种服务。热门的包括 WhatsApp、Telegram、Facebook、Instagram、Snapchat、TikTok、X(Twitter)、Discord、Claude、Microsoft 和 Outlook、Amazon、Viber、imo、Signal 以及 LinkedIn。
该列表只是快照,并非承诺。运营商容量在一天中会变化,所以 API 会报告实时可用性,你的代码应在下单前读取它。
约旦号码格式:中继零、E.164 与阿拉伯语文本
约旦的国家代码是 +962,中继前缀是 0。在当地,手机号以 07 开头;在国际格式中零会消失,剩下 +962 加上以 7 开头的九位数字。请存储 E.164 格式,当用户粘贴本地号码时,在加上国家代码之前先去掉开头的 0。把 07… 与 +9627… 当作字符串去比较,是造成重复账号 bug 的典型原因。
阿拉伯语是官方语言,许多人把手机和应用设置成了阿拉伯语。根据应用以及账号的语言设置,验证码可能以阿拉伯语或英语文本送达。阿拉伯语消息以 Unicode 发送,数字可能夹在从右到左的文字中,因此请用模式匹配提取验证码,并测试两种语言。
团队接入约旦的情形包括:为阿拉伯语用户本地化产品、从安曼为整个地区提供支持,或与邻近市场(例如沙特阿拉伯和阿拉伯联合酋长国)一起检查流程。
从控制台订购约旦验证码
运营人员不用写代码也能做同样的事。用邮箱加六位数验证码或 Google 登录创建账号,充值,在 OTP Gateway 中选择约旦和服务,确认显示的价格并下单。+962 号码会立刻出现,短信到达后验证码会显示在它旁边。
激活会保持 20 分钟有效。只有验证码到达时你才需要付费;如果窗口结束时仍是空的,或者你取消了订单,金额会自动退回钱包。
验证码没到时的排查顺序
从最简单的解释开始,逐步向外排查:
- 窗口还开着吗? 投递取决于服务和线路。在判定失败之前,先让完整的 20 分钟走完。
- 该服务接受虚拟号码吗? 有些不接受,这就是为什么未使用的激活会被退款。
- 换一条线路试试。 稍后再下单,或者如果你的产品允许,为同一功能使用不同的服务线路。
- 限制重试频率。 每隔几秒就重新下单的循环主要是在白白消耗尝试次数;请拉开间隔。
只测试你自己拥有或运营的账号,遵守各服务的规则,并记住 OTP Route 的《可接受使用政策》适用于所有使用场景。
长期线路、钱包与沙盒
OTP Route 在约旦没有自助的长期号码。专用号码起价 $1.95/月,仅在美国和加拿大即时提供。如果你的团队需要长期的 +962 线路,请写信到 [email protected];能否安排取决于当地规定。
钱包为美元预付,没有月费,也无需选择套餐。可通过银行卡或 USDT/USDC 充值,每次充值都会通过邮件收到 PDF 发票。集成期间,可为开发账号申请沙盒模式,在不花钱的情况下获得模拟的号码和验证码。实时费率请参阅定价。
常见问题
约旦在 API 中的国家代码是什么?
在 OTP Route API 中把 jo 用作 country 的值,例如 GET /api/v1/prices?country=jo&service=whatsapp。
约旦手机号需要去掉开头的 0 吗?
需要,国际格式要去掉。本地的 07 号码会变成 +962 加上以 7 开头的九位数字。
约旦验证码会以阿拉伯语送达吗?
有可能。语言通常随应用和账号设置而定,所以请用模式匹配解析数字,并同时测试阿拉伯语和英语消息。
+962 号码会为我的验证码保留多久?
每次激活持续 20 分钟。如果这段时间内没有收到短信,费用会退回你的钱包。
我能获得一个长期保留的约旦专用号码吗?
自助方式不行。专用号码是美国和加拿大的产品;约旦的情况可以发邮件到 [email protected] 咨询。
有没有办法在自动化测试中接收约旦短信验证码?
有。用 POST /api/v1/activations 下单,然后轮询该激活或处理带签名的 Webhook;沙盒账号可让你用模拟验证码来演练这一流程。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。