为什么日本版本的上线会卡在手机号这一步?
筹备日本版本的团队通常已经完成了翻译,接好了支付方式,也起草好了 App Store 的上架信息。然后有人问:谁来用真实的 +81 号码验证注册流程?这时会议室里就安静了。
这个缺口通常出现在几个可预见的地方:
- 本地化 QA 需要确认手机号输入框能接受日本用户实际会输入的格式,包括带连字符书写的号码。
- 在东京或大阪的区域运营人员,在更换设备后需要找回共享的企业账号,而没有人愿意把个人号码绑定在上面。
- 与日本平台的合作伙伴和集成,有时会在企业资料入驻时要求提供本地号码。
OTP Gateway 消除了对实体 SIM 卡的依赖。它为你提供一个仅用于一次验证的 +81 号码,通过我们运营商合作伙伴的 OTP 路由收取短信,并把结果交给你的代码或浏览器。
我可以在 +81 号码上为测试验证哪些服务?
目前日本验证号码可用于订购超过 1,500 种服务。实时快照中的热门线路包括 LINE、X(Twitter)、Amazon、Netflix、Google(Gmail 和 YouTube)、Instagram、TikTok、Discord、Uber、Airbnb、Microsoft 和 Outlook、ChatGPT(OpenAI)、Facebook 以及 WhatsApp。
LINE 值得特别一提,因为它是日本很大一部分人默认使用的通讯应用,所以提供 LINE 登录或 LINE 通知的产品,除了普通短信之外,也需要覆盖这条路径。可用性在一天中会变化,因此你工具中的列表应当来自 API,而不是本页面。
如何把日本 OTP API 接入测试执行器?
短信验证 API 位于 https://otproute.com/api/v1。在开发者控制台创建一个密钥(以 or_live_ 开头),作为 Bearer 令牌发送,并把请求量保持在每分钟 300 次以下。一个账号最多可拥有 10 个密钥和 5 个 Webhook 端点。
典型的一次运行如下:
- 用
GET /api/v1/services和GET /api/v1/countries一次性解析出各个 id;日本是jp。 - 通过
GET /api/v1/prices?country=jp&service=<id>获取当前费率,并与测试结果一起保存。 - 用
POST /api/v1/activations创建订单,请求体为{"service": "<id>", "country": "jp"}。 - 把返回的号码输入被测应用并触发短信。
- 在你的 Webhook 上接收
activation.sms_received,如果执行器位于防火墙之后,则轮询GET /api/v1/activations/{id}。 - 收尾时,对测试不再需要的任何激活调用
POST /api/v1/activations/{id}/cancel。
Webhook 请求带有 X-OTPRoute-Signature: t=<unix>,v1=<hex>。请用端点密钥对 <t>.<raw body> 重新计算 HMAC-SHA256,使用安全比较,并拒绝过旧的时间戳。把事件视为以 activation id 为键,这样重试不会造成问题。关于 CI 的具体做法,请参阅 CI 流水线中的短信 OTP 测试和 QA 测试解决方案。
东京办公室里的非开发人员能用浏览器完成这件事吗?
可以。在 OTP Route 控制台中打开 OTP Gateway,选择日本和服务,查看显示的价格并确认。号码会立刻显示;消息到达后,验证码会出现在它旁边。无需安装任何东西,所以客服主管或市场经理检查活动落地页流程时也很方便。
日本手机号是什么格式,短信长什么样?
日本国内的中继前缀是 0。手机号通常写作 070、080 或 090 后接八位数字,常用连字符分组。在 E.164 中零会被去掉,所以 090 加上其余部分会变成 +81 90 加八位数字。只保存 E.164 版本,在用户输入时去掉连字符和空格,并确保你的校验器不会拒绝 070 号段。
验证短信常以日语发送,混合汉字、平假名和片假名,有些还包含全角数字而不是普通的 ASCII 数字。提取验证码之前,请先对文本做 Unicode NFKC 规范化,否则针对 [0-9] 的正则可能会悄悄漏掉它。日文文本还意味着短信是以 Unicode 编码发送的,所以请让日志保持 UTF-8,以便日后查看失败原因。
验证码没出现,我们该怎么办?
没到达就不收费:如果 20 分钟内没有收到短信,或者你取消了订单,全部金额都会自动退回钱包。再次下单之前:
- 给窗口一些时间;迟到的验证码依然会被捕获。
- 暂停一会儿后重试,或者为同一服务切换到另一条线路。
- 检查该服务一开始是否接受虚拟号码,因为有些会拒绝。
- 避免自动化脚本快速循环重新下单;请拉开尝试的间隔。
OTP 国家路由一文解释了线路为何不同。
有没有长期使用的日本线路?钱包如何计费?
OTP Route 不提供自助的长期日本号码。专用虚拟号码是面向美国和加拿大的产品,起价 $1.95/月;如果长期的 +81 线路必不可少,请发邮件到 [email protected],团队会查看当地规定允许什么,但不承诺一定能实现。
付款通过单一的预付美元钱包进行:没有订阅,也没有套餐。可通过银行卡或 USDT/USDC 充值,每次充值都会通过邮件发送 PDF 发票。开发账号可应要求以沙盒模式运行,使用模拟的号码和验证码。最新费用请查看定价页面。
常见问题
没有日本 SIM 卡也能接收日本短信验证码吗?
可以。OTP Gateway 会签发一个仅用于一次验证的 +81 号码,并在控制台中显示验证码,或把它发送到你的 Webhook。
在 API 调用中,日本应该传哪个国家 id?
在激活请求体和价格查询中使用 jp。
为什么我的解析器漏掉了日语短信里的验证码?
消息可能使用了全角数字。匹配之前先做 NFKC 规范化,验证码就能被普通的数字模式匹配到。
090 开头的号码存储时要保留开头的 0 吗?
不要。存储 +81 加上去掉中继零的号码,例如 +81 90 加其余八位数字。
如果没有收到日本验证码,我的钱会怎样?
20 分钟窗口结束或你取消激活后,款项会自动退回你的钱包。
我们能为日本市场测试 LINE 注册吗?
LINE 属于日本可用的服务之一,不过可用性会变化。请查看实时列表,并对你创建的任何账号遵守 LINE 的条款。
这些号码的使用有规则吗?
有。仅将它们用于你自己的产品和合法账号,遵守各服务的条款,并请注意 OTP Route《可接受使用政策》同样适用。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。