# 查询设备标记状态

#### 功能介绍

开发者应用的服务端可调用本接口查询设备标记状态。

#### 场景描述

开发者获取到devicetoken后可调用本接口查询设备标记状态。如果该设备未被标记过，返回Notfound。

#### 使用约束

无

#### 接口原型

*   **承载协议** HTTPS POST
*   **接口方向** 开发者服务器->Device Security服务器
*   **接口URL** 
*   **数据格式** 请求消息头：Content-Type: application/json;charset=utf-8
    
    响应消息：Content-Type: application/json;charset=utf-8
    

#### 请求参数

**Request Header**

| 参数 | 是否必选 | 参数类型 | 描述 |
| --- | --- | --- | --- |
| Content-Type | 否 | String | 取值为：application/json;charset=utf-8。 |
| Authorization | 是 | String | 服务账号令牌 |
| bundleName | 是 | String | 开发者APP包名 |

Authorization格式：Bearer后面拼接空格，再拼接获取的鉴权信息。令牌生成示例代码。

**Request Body**

| 参数 | 是否必选 | 参数类型 | 描述 |
| --- | --- | --- | --- |
| mode | 是 | Int | 设备标记状态的粒度。取值： 1：应用级 2：开发者级 说明：不同粒度的设备标记状态相互独立。 其中开发者级的设备标记状态在同一个开发者下的所有应用进行共享，例如开发者甲的应用A更新了设备标记状态，则开发者甲的应用B查询到的设备标记状态也会跟随变化。 |
| deviceToken | 是 | String | 客户端调用getDeviceToken获取的设备临时标识。 |
| transactionId | 否 | String | 应用服务的唯一事务标识，关联业务上下文消息。 |
| timestamp | 是 | Long | 应用服务器上的UTC时间。单位，毫秒。 |

开发者在构造消息体时，消息体需要在外层包一层data结构，详情参考如下调用示例。

#### 请求示例

```
POST /api/rms/v1/deviceVerify/getDeviceStatus HTTP/1.1
Host: xxx
Authorization: Bearer eyJr*****OiIx---****.eyJh*****iJodHR--***.QRod*****4Gp---****
bundleName: com.huawei.xxx
Content-Type: application/json;charset=utf-8

{"data":{ "mode":1, "deviceToken":"xxx", "transactionId":"ddc740b9-45bb-424a-bc50-64e8a813acad", "timestamp":1711072205525}}
```

#### 响应参数

**Response Body**

| 参数 | 是否必选 | 参数类型 | 描述 |
| --- | --- | --- | --- |
| bundleName | 否 | String | 从deviceToken中获取的bundleName，供开发者校验。 |
| bit0 | 否 | Boolean | 设备标记状态的第一位数据。 |
| bit1 | 否 | Boolean | 设备标记状态的第二位数据。 |
| lastUpdateTime | 否 | Long | 最近一次数据更新的UTC时间。单位，毫秒。时间精度到每月1号零点，如UTC时间戳为1722441600000，转换标准时间为2024-08-01 00:00:00。 |
| errorCodes | 是 | String | 错误码。 |

#### 响应示例

```
HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8

{"bundleName":"xxx","bit0":true,"bit1":false,"lastUpdateTime":1711072206323,"errorCodes":"OK"}
```

#### 错误码

以下错误码的详细介绍请参见REST API错误码。

| 错误码 | 描述 |
| --- | --- |
| OK | 请求处理成功。 |
| NotFound | 未找到设备的标记记录（设备身份验证成功，该设备未被标记过）。 |
| InvalidDeviceToken | deviceToken缺失或不合法。 |
| InvalidMode | Mode缺失或者非法。 |
| DeviceTokenExpired | deviceToken过期。 |
| InvalidTimeStamp | timeStamp缺失或不合法。 |
| InternalServerError | 服务器内部错误。 |
| InvalidBundleName | bundleName缺失或不合法。 |