Skip to content

Latest commit

 

History

History
166 lines (125 loc) · 3.82 KB

qrcode_hk4e.md

File metadata and controls

166 lines (125 loc) · 3.82 KB

米游社扫码登录(GameToken)


扫码登录

操作步骤

  1. 生成二维码,记录返回data对象的url,及其URL参数中的ticket字段(下称ticket)。
  2. 生成二维码供用户扫描。
  3. 不断查询二维码扫描状态。在用户扫描并确认登录后,获取data对象→payload对象的raw(即Game Token)。

生成二维码

国服:

请求方式:POST

https://hk4e-sdk.mihoyo.com/hk4e_cn/combo/panda/qrcode/fetch

JSON请求:

字段 类型 内容 备注
app_id str 登录的应用标识符
1 《崩坏3》
2 《未定事件簿》
4 《原神》
5 平台应用
7 《崩坏学园2》
8 《崩坏:星穹铁道》
9 云游戏
10 3NNN
11 PJSH
12 《绝区零》
13 HYG
任何值都没有区别,但是必须传递此参数
device str 设备ID

JSON返回:

根对象:

字段 类型 内容 备注
retcode num 返回码
message str 返回消息
data obj 二维码指向的URL

data对象:

字段 类型 内容 备注
url str 二维码指向的URL 使用了Unicode转义
查看示例
{
  "retcode": 0,
  "message": "OK",
  "data": {
    "url": "https://user.mihoyo.com/qr_code_in_game.html?app_id=7\u0026app_name=%E5%B4%A9%E5%9D%8F%E5%AD%A6%E5%9B%AD2&bbs=false\u0026biz_key=bh2_cn\u0026expire=1687002702\u0026ticket=648706ceff80ee663845a13d"
  }
}

查询二维码扫描状态

国服:

请求方式:POST

https://hk4e-sdk.mihoyo.com/hk4e_cn/combo/panda/qrcode/query

JSON请求:

字段 类型 内容 备注
app_id str 登录的应用标识符 与生成二维码时传递的值相同
device str 设备ID 与生成二维码时传递的值相同
ticket str 生成二维码时从返回的URL的参数中,ticket字段的值

JSON返回:

根对象:

字段 类型 内容 备注
retcode num 返回码
-106 二维码已过期
message str 返回消息
data obj 二维码状态

data对象:

字段 类型 内容 备注
stat str 二维码状态
Init 未扫描
Scanned 已扫描
Confirmed 已确认
payload obj 登录数据

data对象→payload对象:

字段 类型 内容 备注
proto str 当前的数据类型
Raw 无数据
Account 已确认
raw str 确认登录之前为空字符串,之后则为米游社账号ID和Game Token(为JSON格式),其中的token字段即为账号的Game Token
ext str 空字符串
查看示例
// 未扫描
{
  "retcode": 0,
  "message": "OK",
  "data": {
    "stat": "Init",
    "payload": {
      "proto": "Raw",
      "raw": "",
      "ext": ""
    }
  }
}

// 已扫描
{
  "retcode": 0,
  "message": "OK",
  "data": {
    "stat": "Scanned",
    "payload": {
      "proto": "Raw",
      "raw": "",
      "ext": ""
    }
  }
}

// 已过期
{
  "data": null,
  "message": "ExpiredCode",
  "retcode": -106
}

// 已确认
{
  "retcode": 0,
  "message": "OK",
  "data": {
    "stat": "Confirmed",
    "payload": {
      "proto": "Account",
      "raw": "{\"uid\":\"317832114\",\"token\":\"***\"}",
      "ext": ""
    }
  }
}