为沙特上线以编程方式接收 +966 验证码

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

OTP Route 让你通过 OTP Gateway 接收沙特阿拉伯(+966)验证码:通过 REST API 为国家 sa 创建一个激活,用签名 Webhook 或轮询获取验证码,也可以在控制台完成同样的操作,每条验证码 $0.20 起。每个号码只对应一条验证码,窗口为 20 分钟,没有收到任何短信的激活会全额退款。

通过 API 完成一次 +966 激活是什么样子?

先从调用说起,因为本页的大多数读者都是要把 SMS 验证 API 接入测试套件或内部工具。所有端点都位于 https://otproute.com/api/v1 下,需要带 or_live_ 前缀的 Bearer 密钥,该密钥在开发者控制台中创建。

  1. GET /api/v1/countries 和 GET /api/v1/services 会给出 id。沙特阿拉伯是 sa。
  2. GET /api/v1/prices?country=sa&service=<id> 返回该组合的实时价格;请把它和测试运行一起记录下来。
  3. 使用 {"service": "<id>", "country": "sa"} 调用 POST /api/v1/activations,会返回一个激活 id 和一个 +966 号码。
  4. 测试在应用中输入该号码,验证码会以事件形式到达,或通过 GET /api/v1/activations/{id} 获取。
  5. 如果测试被放弃,POST /api/v1/activations/{id}/cancel 会释放号码并退款到钱包。

GET /api/v1/balance 很适合作为运行前检查,让夜间任务尽早失败并给出清晰的提示,而不是在运行中途出错。需要提前规划的限制:每个账户 10 个密钥、5 个 Webhook 端点,每分钟 300 次请求。

我们的 Webhook 接收端应该如何处理沙特的 OTP 事件?

注册一个端点并订阅 activation.sms_received、activation.expired 和 activation.cancelled。每个请求都带有 X-OTPRoute-Signature,格式为 t=<unix>,v1=<hex>。

  • 将签名字符串重建为 <t>.<raw body>,并用该端点的密钥计算 HMAC-SHA256。
  • 用常量时间函数与 v1 比较,并拒绝时间戳过旧的请求。
  • 把每个事件都视为以激活 id 为键,这样重复投递不会重复更新任何内容。
  • 尽快返回 2xx,把耗时的工作放到后台任务中。

对于无法接收入站连接的运行器,轮询仍然是有效的备选方案。我们关于 基于 Webhook 的 OTP 捕获 和 用 HMAC 保护 OTP Webhook 的文章有更深入的讲解。

产品团队为什么要用 +966 号码做测试?

沙特阿拉伯是海湾地区较大的数字市场之一,团队来到本页通常有实际的原因:金融科技公司要为沙特居民准备入职流程,电商平台要引入海湾卖家,SaaS 供应商的客户要求做区域登录检查,或是运营团队要管理利雅得或吉达办公室的企业账号。每种情况下,都需要有人用真实的沙特验证号码证明流程可用,而通过网关进行 OTP 路由,可以省去往该地区邮寄 SIM 卡的麻烦。金融科技入职页面对这种场景有更详细的描述。

沙特线路上有哪些服务可以接收验证码?

沙特阿拉伯的实时快照涵盖超过 1,000 项服务。常用的有 Snapchat、WhatsApp、X (Twitter)、Uber、TikTok、Instagram、Google(Gmail 和 YouTube)、Telegram、Amazon、Microsoft 和 Outlook、LinkedIn、Discord 和 Netflix。Snapchat 和 X 在沙特拥有庞大的用户群,所以常常出现在本地化检查清单上。库存在一天中会变化,因此请在运行时查询 API。

如何格式化 +966 号码并解析阿拉伯语短信?

在沙特本地,手机号带有主干前缀 0,通常写成 05 加八位数字。国际格式会去掉这个零:+966 5 加其余八位数字。请在输入时就统一规范为 E.164,并在用户把零输入在国家代码后面时将其去掉。

阿拉伯语是官方语言,所以验证短信可能是阿拉伯语、英语或两者兼有。阿拉伯语从右向左书写,有些模板可能使用阿拉伯-印度数字而不是西方数字。解析器在匹配之前先把这些数字映射为 ASCII,并记录原始 UTF-8,就能避免一类令人头疼的误报失败。

不会写代码的人有控制台方案吗?

有。登录 OTP Route,打开 OTP Gateway,选择沙特阿拉伯和服务,查看价格并确认。号码会立即出现,验证码到达后显示在它旁边。客服人员用它几分钟就能重现客户的注册问题。

如果验证码一直没到,长期号码和计费又是怎样的?

如果 20 分钟内没有收到短信,或你取消了激活,全部金额会自动退回钱包。请等窗口走完,稍后再试或换用其他服务线路,确认该服务接受虚拟号码,并避免在短时间内循环重复下单。

目前没有可自助购买的沙特长期号码。专属虚拟号码(Dedicated Virtual Numbers)仅在美国和加拿大提供,每月 $1.95 起;如果需要长期的 +966 线路,请发邮件至 [email protected],但请记住能否办理取决于当地规定。

充值使用一个预付美元钱包,按量付费,没有月费。银行卡和 USDT/USDC 都可以充值,每次充值都会通过邮件发送 PDF 发票。开发账户可应要求切换到沙盒,获得模拟的号码和验证码。当前价格请查看价格页面。

常见问题

如何通过 API 接收沙特短信 OTP?

使用国家 sa 和你的服务 id 创建一个激活,然后从 activation.sms_received Webhook 中获取验证码,或轮询该激活。

如果验证码失败,用于测试的 +966 号码会计费吗?

不会。没有收到验证码时,20 分钟窗口关闭或你取消后,全部金额会退回钱包。

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

可以。OTP Gateway 会发放一个对应一条验证码的 +966 号码,你把它输入应用,再通过控制台或 API 读回验证码。

以 05XXXXXXXX 形式输入的沙特手机号应该如何存储?

去掉主干前缀的零,按 E.164 存储为 +966 5 加其余八位数字。

我们可以保留同一个沙特号码用于以后的登录吗?

自助产品做不到,因为长期的专属号码只覆盖美国和加拿大。如果你需要沙特线路,请发邮件联系团队,但不保证能够提供。

在投入真实资金之前,有办法预演沙特流程吗?

有。为开发账户申请沙盒模式,即可接收模拟的号码和验证码,包括 Webhook。

OTP Route 允许哪些用途?

测试并运营你自己的合法产品和账户。请遵守每项服务的条款;OTP Route 的《可接受使用政策》同样适用。

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

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

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