场景:工作室或电竞战队需要一个自己掌控的 Battle.net 手机号
设想一位 QA 负责人,所在公司围绕暴雪游戏开发配套工具、直播叠加层或赛事软件。团队运营着用于测试和直播的官方公司账号,没有人希望工程师的个人手机号绑在上面。另一种常见情形是电竞俱乐部,其运营人员管理共用的战队账号,需要让验证码落到全队都能看到的地方。
Battle.net 将手机号用于多种用途:确认账号背后的人、在敏感信息变更时发送验证码、支持账号找回,以及作为 Blizzard Authenticator 应用之外的另一层安全保护。部分暴雪游戏还曾要求账号先绑定手机号才能游玩。因此,Battle.net 短信验证测试涉及的流程,你的团队可能需要重现不止一次。
为 Battle.net 订购虚拟号码之前的清单
- 选对产品。 一次性检查适合 OTP Gateway。需要长期保留手机号、并要通过未来安全提示的账号,则应使用专用号码(见下文)。
- 匹配国家。 Battle.net 账号的国家在创建时选定,用户之后通常无法更改,所以请订购与账号同一市场的号码。
- 准备凭据。 来自开发者控制台的 Bearer 密钥(前缀
or_live_),最好再准备一个带密钥的 webhook 端点。 - 为钱包充值。 通过银行卡或 USDT/USDC 充入预付美元钱包;没有月度套餐。
- 在沙盒中演练。 客服可以把开发账号切换到沙盒,让集成收到模拟的号码和验证码而不花钱。
QA 测试页面介绍了团队如何组织这类可复用的测试数据。
哪些国家可以接收 Battle.net OTP?
battle_net 线路目前覆盖 197 个国家。其中包括美国、加拿大、英国、德国、法国、西班牙、波兰、瑞典、韩国、台湾、日本、新加坡、菲律宾、澳大利亚、巴西、墨西哥、土耳其和南非。暴雪通过区域性的游戏枢纽服务玩家,因此你选择的国家应该反映测试用例所涉及的地区和商店,而不是哪条线路碰巧最便宜。各国的实时可用情况来自 GET /api/v1/prices。
Battle.net 验证码 API 的流程是怎样的?
基础 URL 为 https://otproute.com/api/v1,使用 Bearer 认证,每分钟 300 次请求。
- 确认价格与可用性:
GET /api/v1/prices?country=<id>&service=battle_net,国家 id 取自GET /api/v1/countries。 - 用
POST /api/v1/activations创建激活,请求体形如{"service": "battle_net", "country": "us"}。 - 在 Battle.net 中填入返回的号码并请求验证码。
- 在你的 webhook 上处理
activation.sms_received。校验X-OTPRoute-Signature:用端点密钥对<t>.<raw body>计算 HMAC-SHA256,并拒绝过期的时间戳。 - 让处理程序保持幂等:以激活 id 为键来处理,这样重试的投递就不会提交同一个验证码两次。
- 没有公开端点?改为轮询
GET /api/v1/activations/{id},并把activation.expired或activation.cancelled事件视为本次测试运行的结束。
webhook 捕获指南详细介绍了排队与重试。
非开发人员在控制台里怎么做?
打开 OTP Gateway,选择 Battle.net 和账号所属的国家,查看显示的价格并确认。在 Battle.net 的手机号字段填入号码,请求短信,并保持激活页面打开;验证码送达后会出现在那里。同样适用 20 分钟窗口和自动退款。
Battle.net 的验证码为什么可能收不到?
暴雪可能在某些安全功能上拒绝虚拟号码或类似预付费的号码,而且这项政策可能在不通知的情况下改变。如果验证码一直没来,窗口期结束或你取消订单后,全部金额会退回你的钱包。然后:
- 让完整的窗口期走完,因为送达时间取决于服务和线路;
- 稍后重试,或换成仍与账号相符的其他国家;
- 避免快速的取消再重新下单循环,那样只会浪费你的频率配额;
- 如果号码被直接拒绝,请把它当作政策上的答复,而不是需要绕过的问题。
投递失败清单列出了更多值得记录的信号。
什么时候专用号码更适合作为 Battle.net 手机号?
只收一条验证码的号码在窗口期结束后就没了,所以不适合任何之后还要再次接收安全验证码的账号。对于长期使用的公司账号,美国或加拿大的专用号码(Dedicated Number)每月 $1.95 起,在从钱包续费期间保持同一条线路,并把入站短信转发到控制台和你的 webhook,事件名为 number.sms_received。
无论选哪种,都请遵守暴雪的条款:每个真实的人或企业一个账号,不要多开账号,也不要试图规避封禁。OTP Route 用于测试和运营你自己的合法账号与产品,并受其《可接受使用政策》约束。Battle.net 是其所有者的商标,OTP Route 与其没有关联。
常见问题
不用我的个人手机,也能接收 Battle.net OTP 吗?
可以。为 battle_net 订购一个 OTP Gateway 号码,填入 Battle.net,然后在控制台或通过 webhook 读取验证码。每条 $0.20 起,仅在送达时收费。
Battle.net 会接受所有虚拟号码吗?
不会。暴雪可能在某些功能上拒绝虚拟号码或预付费号码,这就是未送达的激活会自动退款的原因。
Battle.net 测试账号应该选哪个国家?
使用与账号相同的国家。Battle.net 账号的国家是在创建时设定的,所以号码不匹配可能导致令人困惑的结果。
API 中 Battle.net 的服务 id 是什么?
服务 id 是 battle_net。将它与国家 id 一起用于 POST /api/v1/activations。
怎样避免 Battle.net webhook 处理程序对同一个验证码处理两次?
第一次处理 activation.sms_received 时保存激活 id,在校验签名之后,忽略之后携带相同 id 的任何投递。
以后还需要验证码的公司账号,应该使用临时激活吗?
不应该。对于反复出现的安全提示,美国或加拿大的专用号码(每月 $1.95 起)会在续费期间保持同一条线路。
Battle.net 线路覆盖多少个国家?
最新快照为 197 个国家。可用情况在一天中会变化,所以下单前请从 API 读取实时价格。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。