
本教程旨在自助完成战网国际服账号注册,方法相对复杂,成本也不一定低廉,但全部流程均由自己把控,没有第三方介入,安全性更有保障,如遇二次验证也可自行处理。教程分为以下步骤: 过程中请自行解决科学上网问题,不要就相关问题私信或评论
第一步:注册战网账号
1. 准备一个可用的邮箱
推荐使用微软帐户,一个微软帐户可以同时配置多个别名,用于多个账号注册,并在同一处接收邮件
2. 使用该邮箱注册战网账号
打开 https://account.battle.net/creation/flow/creation-full 网页建立战网账号,地区选择香港,可以通过支付宝消费

地区选择香港
为了使步骤清晰,此处先不填写手机号

先不填写手机号,可在完成注册后另行绑定

完成注册
完成后邮箱中会收到确认邮件,点击邮件中的验证链接完成邮箱验证

完成邮箱验证
战网账号已经注册完成,但由于没有绑定手机号,无法进入守望先锋
第二步:绑定手机号
临时虚拟号码成本低廉,后期遇到账号需要二次验证的情况时,直接重新绑定新的虚拟号即可,无需找回原号码
1. 打开 https://sms-activate.org/en 网站注册账号,用于购买临时虚拟号码获取短信验证码,注册过程不再赘述
2. 点击右上角加号充值,页面拉到底部使用AliPay(支付宝)支付,该网站使用卢布结算,单次验证花费几毛到几元不等,充值2美元即可

点击此处充值

选择AliPay支付

最低充值2美元,10美元以下会有手续费,实际花费2.1美元
3. 在平台中购买战网香港短信验证服务,在左侧Service selection中搜索Blizzard, 点击下方Blizzard后,搜索HongKong并购买

购买战网香港短信验证服务,本次花费3块8毛7
4. 在战网账号详细资料中新增手机号

新增电话号码

点击这里复制号码

粘贴电话号码,并删除号码前的852

如果遇到号码不可用的情况,可以每两分钟获取一个新的号码,或取消并退款

如果号码可用,这里会收到验证码,保存后点击右侧对号结束服务

填写验证码并提交

完成手机号绑定
建议记录下此次使用的号码,后期提服务单前确认身份时可能用得到,常见的有:账号注册日期、曾绑定过的电话号码、曾使用过的BattleTag(战网ID)等问题
此时已可以进入守望先锋,但为了帐户安全性和可维护性,建议继续后续步骤完成安全令绑定
第三步:绑定安全令
方法来自 https://github.com/jleclanche/python-bna/issues/38#issuecomment-1902482544 在此仅作翻译和搬运 此处只介绍新号绑定过程,对应原帖中步骤1、2、5、6,如果已绑定安全令的账号想要获取40位密钥,请自行参考原帖中步骤1、2、3、4 此时也可以通过战网APP启用安全令,但无法获取到40位密钥,也就无法使用其他2FA应用获取验证码
进入浏览器隐身模式(避免Cookies影响),打开 https://account.battle.net/login/en/?ref=localhost 并登录,跳转后会提示404,记录下地址栏中的 SSO Token,位于?ST=之后,&flowTrackingId=之前

记录SSO Token
2. 打开终端(Windows下使用命令提示符),粘贴以下命令,并将<SSO_TOKEN>替换为上一步获取的SSO Token
注意:Windows中的命令不能换行,复制的代码如果为多行,需自行处理为一行再粘贴
macOS & Linux 系统使用以下命令:
curl -X &#39;POST&#39; \
&#39;https://oauth.battle.net/oauth/sso&#39; \
-H &quot;content-type: application/x-www-form-urlencoded; charset=utf-8&quot; \
-d &quot;client_id=baedda12fe054e4abdfc3ad7bdea970a&amp;grant_type=client_sso&amp;scope=auth.authenticator&amp;token=&lt;SSO_TOKEN&gt;&quot; Windows 系统使用以下命令:
curl -X &quot;POST&quot; &quot;https://oauth.battle.net/oauth/sso&quot; -H &quot;content-type: application/x-www-form-urlencoded; charset=utf-8&quot; -d &quot;client_id=baedda12fe054e4abdfc3ad7bdea970a&amp;grant_type=client_sso&amp;scope=auth.authenticator&amp;token=&lt;SSO_TOKEN&gt;&quot; 返回值如下:
{&quot;access_token&quot;:&quot;XXX&quot;,&quot;token_type&quot;:&quot;bearer&quot;,&quot;expires_in&quot;:0,&quot;scope&quot;:&quot;auth.authenticator&quot;,&quot;sub&quot;:&quot;XXX&quot;} 记录下access_token对应的Bearer Token(不包括双引号)
3. 在终端后粘贴以下命令,并将<BEARER_TOKEN>替换为上一步获取的Bearer Token
macOS & Linux 系统使用以下命令:
curl -X &#39;POST&#39; \
&#39;https://authenticator-rest-api.bnet-identity.blizzard.net/v1/authenticator&#39; \
-H &#39;accept: application/json&#39; \
-H &quot;Authorization: Bearer &lt;BEARER_TOKEN&gt;&quot; \
-d &#39;&#39; Windows 系统使用以下命令:
curl -X &quot;POST&quot; &quot;https://authenticator-rest-api.bnet-identity.blizzard.net/v1/authenticator&quot; -H &quot;accept: application/json&quot; -H &quot;Authorization: Bearer &lt;BEARER_TOKEN&gt;&quot; -d &quot;&quot; 返回值如下:
{&quot;serial&quot;:&quot;XXX&quot;,&quot;restoreCode&quot;:&quot;XXX&quot;,&quot;deviceSecret&quot;:&quot;XXX&quot;,&quot;timeMs&quot;:0,&quot;requireHealup&quot;:false} 记录下serial(序列号),restoreCode(还原码),deviceSecret(密钥)对应的内容(不包括双引号),并留存备份,切记不要丢失

终端操作示例,红色部分为重要数据,需要妥善保存
4. 在 https://cryptii.com/pipes/hex-to-base32 网站中将deviceSecret转换为Base32编码,也需要留存备份

转换密钥编码为Base32
第四步:不使用战网APP获取登录验证码
TOTP 是Time-based One-Time Password的简写,表示基于时间戳算法的一次性密码。 是时间同步,基于客户端的动态口令和动态口令验证服务器的时间比对,一般每60秒,或30秒产生一个新口令,要求客户端和服务器能够十分精确的保持正确的时钟,客户端和服务端基于时间计算的动态口令才能一致
1. 在Play Store下载 2FAS 应用,或其他支持生成8位TOTP验证码的应用(常见的是6位,但战网是8位),如果有其他适用的2FA应用,也可在评论区中介绍
2. 手动添加密钥,Secret Key输入转换为Base32编码的deviceSecret(密钥),位数选择8

Base32编码,位数8
3. 添加完成后即可看到30秒更新一次的验证码

验证码30秒更新一次
4. 使用应用即时生成的验证码重新登录战网

使用TOTP重新登录战网
5. 完成

守望先锋,启动!
备注
香港虚拟号码的验证服务通常较贵,如果你不考虑充值的便利性,也可以在注册账号时选择其他地区(如阿根廷),选择地区前先确认sms-activate平台上有没有该地区的战网短信验证服务
请谨慎选择国家/地区,账号一旦注册完成,地区便难以更改,只能使用该地区支持的充值途径,绑定该地区的电话号码
sms-activate平台上的临时号码通常会在24h后失效,但如果较早遇到二次验证,可以在History中找到上次的激活服务,尝试使用相同的号码再次接收短信(另收费),也许可以省去一次换绑号码的麻烦
第三方2FA应用可以同时管理并生成多个账号的TOTP,相比战网APP有更高的灵活性,且TOTP为离线生成,也不会受到暴雪服务器连通性的影响