通过 API 接收印度(+91)验证码

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

可以:OTP Route 让你在 OTP Gateway 的一次性号码上接收印度(+91)短信验证码,既可以在控制台查看,也可以通过 REST 轮询和带签名的 Webhook 以程序方式获取。价格低至每条验证码 $0.20,各服务的确切金额由 API 实时返回,而且只有验证码真正在 20 分钟窗口内送达时才会收费。

印度 OTP API 的调用顺序是怎样的?

整个流程只需向 https://otproute.com/api/v1 发出几个请求,使用以 or_live_ 开头的 Bearer 密钥认证。密钥从开发者控制台获取,每个账号最多 10 个,所以每个环境都可以有自己的密钥。

  1. 调用一次 GET /api/v1/countries 并缓存。印度的国家 id 是 in。
  2. 针对被测服务调用 GET /api/v1/prices?country=in&service=<id>。它返回实时价格和可用情况,所以每次运行都要读取。
  3. 使用 POST /api/v1/activations 下单,JSON 请求体类似 {"service": "telegram", "country": "in"}。响应会给你一个激活 id 和一个 +91 号码。
  4. 把该号码输入到你自己应用的注册或登录界面。
  5. 通过 Webhook 或轮询 GET /api/v1/activations/{id} 获取验证码。如果测试提前终止,调用 POST /api/v1/activations/{id}/cancel。

在测试套件开始时检查 GET /api/v1/balance,让运行快速失败。该 API 允许每分钟 300 个请求,足以支持每隔几秒轮询一次。请求和响应的细节见 API 文档。

应该如何构建处理 +91 验证码的 Webhook 处理程序?

一旦任务并行运行,带签名的 Webhook 比轮询更容易扩展。在开发者控制台注册一个端点(每个账号最多 5 个),并监听 activation.sms_received、activation.expired 和 activation.cancelled。

每次投递都带有形如 t=<unix>,v1=<hex> 的 X-OTPRoute-Signature 请求头。要校验它,请用该端点的密钥对字符串 <t>.<raw body> 计算 HMAC-SHA256,并以恒定时间把结果与 v1 比较。有两个细节容易让人栽跟头:

  • 对原始请求字节做哈希,绝不要对重新序列化的 JSON 对象做哈希;键的顺序和空白会改变摘要。
  • 拒绝时间戳早于几分钟前的请求,这样被截获的请求就无法重放。

以激活 id 作为写入的键,让重复投递成为空操作,并在做耗时工作之前先返回 2xx 确认。我们关于用 HMAC 保护 OTP Webhook 的文章逐行讲解了比较步骤。

哪些服务可以向印度号码发送验证码?

印度线路目前列出了 2,300 多项服务。实时快照中的热门条目包括 WhatsApp、Telegram、Google(Gmail 和 YouTube)、Instagram、Facebook、X(Twitter)、ChatGPT(OpenAI)、Microsoft 与 Outlook、Amazon、LinkedIn、Discord、Uber 和 Snapchat。

可用情况在一天之中会变化,所以 API 会实时报告。如果你的测试矩阵依赖某一项服务,请在运行前查询 in 的价格,并在该线路关闭时干净地跳过。这些线路只应用于你自己的产品和账号,请遵守各服务的条款,并请记住 OTP Route 的《可接受使用政策》同样适用。

非开发人员可以通过控制台订购印度验证号码吗?

可以。运营人员和代理机构的客户经理可以跳过 API:

  1. 用邮箱加 6 位邮件验证码或 Google 登录创建账号,然后开启 TOTP 双重验证。
  2. 为钱包充值。
  3. 选择印度和服务,查看屏幕上的价格,然后下单。
  4. 把 +91 号码输入到你正在设置的应用中;短信一到达,验证码就会出现在激活页面上。

控制台和 API 共用同一个窗口、同一条退款规则和同一个钱包。

如果 20 分钟内没有收到验证码该怎么办?

每次激活保持 20 分钟开放。只有短信到达才需付费:当窗口结束时仍为空,或你先取消了,全额金额会自动退回你的钱包,你的 Webhook 会收到 activation.expired 或 activation.cancelled。

如果验证码缺失:

  • 先让窗口走完再做出反应;服务发送速度可能只是比平时慢一些。
  • 确认该服务到底是否接受虚拟号码。有些平台会拒绝,这是它们一侧的政策,而不是投递故障。
  • 稍后再试,或用另一条服务线路测试。
  • 千万不要在紧凑的循环中重复下单。在两次尝试之间退避,免得把精力浪费在一条拒绝号码的线路上。

关于重试策略,减少 OTP 投递失败中有更详细的说明。

应该如何存储和规范化印度电话号码?

印度手机号为十位数字,实际上以 6、7、8 或 9 开头。印度国内的人常常在前面加上长途前缀 0,或用空格把号码分成五位和五位。国际格式去掉那个 0 并加上国家代码,得到 +91 加十位数字。

只存储 E.164 格式:+91 加十位数字,不含空格、连字符或零。在边缘处规范化输入,去掉格式、前导的 0,或没有加号而直接输入的 91。这样可以避免仅因格式不同而产生重复用户。

印度的大多数验证短信以英语送达,并来自字母数字发送者标识,而不是电话号码。有些应用会改用印地语或其他地方语言发送,所以也要用非拉丁文字来测试你的验证码解析器。

产品团队为什么需要 +91 号码做测试?

印度是消费类应用、金融科技开户和电商平台常见的上线市场,其用户期待注册时有短信步骤。团队使用 +91 线路来预演上线、在印地语、泰米尔语、泰卢固语、孟加拉语、马拉地语等界面上做本地化 QA、支持区域运营人员,以及检查身在国外、仍用家乡号码登录的印度侨民客户所使用的流程。这里良好的 OTP 路由意味着选择与真实用户旅程相符的服务线路,再把它接入你在其他市场使用的同一套短信验证 API 调用。

有长期使用的印度线路吗?计费如何运作?

没有。专属号码是仅限美国和加拿大的产品,低至 $1.95/月,你无法从控制台购买长期的印度线路。如果你需要,请发邮件至 [email protected];能否提供取决于当地规定,无法保证。

计费使用一个预付美元钱包,没有月费,也无需选择套餐。可以用银行卡或 USDT/USDC 稳定币充值,每次充值都会通过邮件发送 PDF 发票。做集成工作时,可以请支持团队把开发账号切换为沙盒:它返回模拟的号码和验证码,让你无需动用钱包资金就能端到端地测试 Webhook 处理程序。

常见问题

没有本地 SIM 卡,可以测试我的应用的印度注册流程吗?

可以。通过 OTP Gateway 订购一个 +91 号码,把它输入到你的注册界面,然后从控制台、API 或你的 Webhook 读取验证码。

OTP Route API 中印度的国家 id 是什么?

是 in。把它作为国家传入 GET /api/v1/prices 以及 POST /api/v1/activations 的请求体。

接收印度短信 OTP 要花多少钱?

验证码低至每条 $0.20,具体价格取决于服务。下单前就能看到;没有收到验证码的激活会退款到你的钱包。

下个月我可以重复使用同一个 +91 号码再次登录吗?

不可以。网关号码只对应一条验证码。需要重复登录的账号应该使用专属线路,而这类线路仅在美国和加拿大提供。

构建印度集成时有沙盒吗?

有,可按请求开通。支持团队可以把开发账号切换为沙盒,模拟的号码和验证码会流经你的代码,而不会动用钱包。

我们的财务团队可以用稳定币付款吗?

可以。钱包接受银行卡支付以及 USDT 和 USDC,每次充值都会通过邮件生成 PDF 发票。

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

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

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