主题
查询二维码扫码状态 3.9.1+
接口说明
请求 URL:http[s]://{网关地址}/minos-manager/authentication/qrCodeLogin/getQrCodeStatus
请求方式:POST
请求内容类型:application/json
响应内容类型:application/json
请求说明
请求头
| 字段名 | 参数名 | 必填 | 类型 | 描述 |
|---|---|---|---|---|
| 应用ID | appId | M | String | 接入网关的应用ID |
| Token | accessToken | M | String | 接入网关的accessToken |
请求体
| 字段名 | 参数名 | 必填 | 类型 | 描述 |
|---|---|---|---|---|
| 事件唯一编码 | eventId | M | String | 获取认证融合码接口返回的事件唯一标识 |
请求示例
json
{
"eventId": "evt_1234567890abcdef"
}1
2
3
2
3
响应说明
响应体
| 字段名 | 参数名 | 必填 | 类型 | 描述 |
|---|---|---|---|---|
| 返回码 | errcode | M | String | 返回码,0 表示成功,其他为错误 |
| 返回码描述 | errmsg | M | String | 返回码描述 |
| 返回对象 | data | O | QrCodeResultResponse | 返回的扫码状态数据对象 |
QrCodeResultResponse 结构
| 字段名 | 参数名 | 必填 | 类型 | 描述 |
|---|---|---|---|---|
| 扫码状态 | status | M | Integer | 扫码状态:0-等待扫描,1-已授权,2-已扫描待授权,其余无效 |
| 用户信息 | userInfo | O | UserInfo | 用户信息对象(status 为 1 时有效) |
UserInfo 结构
| 字段名 | 参数名 | 必填 | 类型 | 描述 |
|---|---|---|---|---|
| 学工号 | userId | M | String | 用户的学工号 |
| 姓名 | userName | M | String | 用户姓名 |
| 校内机构代码 | originalOrgCode | O | String | 用户所属的校内机构代码,多个用";"分隔 |
| 其他属性 | attrs | O | Map<String,Object> | 其他信息,可通过管控台CAS协议返回字段配置 |
响应示例
json
{
"errcode": "0",
"errmsg": "成功",
"data": {
"status": 1,
"userInfo": {
"userId": "2023001001",
"userName": "张三",
"originalOrgCode": "org1;org2",
"attrs": {
"key": "val"
}
}
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
扫码状态说明
| 状态码 | 说明 | 处理建议 |
|---|---|---|
| 0 | 等待扫描 | 继续轮询 |
| 1 | 已授权 | 登录完成,可使用 userInfo 中的用户信息 |
| 2 | 已扫描待授权 | 继续轮询 |
| 3 | 二维码无效 | 重新获取二维码 |
错误码
| 错误码 | 描述 |
|---|---|
| 220001 | 系统异常 |
| 221001 | eventId 不能为空 |
| 221006 | 用户账号状态异常 |
Demo
java
// 创建客户端
Client client = new DefaultClient(BASE_URL, APP_ID, APP_SECRET);
// 创建请求对象
QrCodeStatusRequest request = new QrCodeStatusRequest();
request.setEventId("evt_1234567890abcdef");
BaseResponse response = client.execute(request);
if (response.isSuccess()){
//...
}1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
注意事项
轮询间隔:客户端需轮询此接口,建议间隔 2-3 秒,避免频繁请求造成服务器压力。
状态处理:
- 当
status为1时,userInfo字段有效,可用于完成登录。 - 当
status为0或2时,继续轮询。 - 若二维码无效(
status为3),需重新调用「获取认证融合码」接口获取新的二维码。
- 当
轮询超时:建议设置最大轮询次数或超时时间,二维码过期后应停止轮询并重新获取。

