设备指纹查询接口用于查询设备指纹与其他设备信息,以及设备的风险检测结果。 ## 接口说明 ### 鉴权说明 为了保障接口调用安全,每一次请求都需要包含签名信息(signature参数),以验证用户身份。目前支持MD5加密算法。具体签名方法见 接口鉴权 (https://support.dun.163.com/documents/609099986339037184?docId=624010514876456960)。 ## 请求 ### 请求地址 名称 | 值 HTTP URL | https://fp-query.dun.163.com/v1/device/query HTTP Method | POST ### 请求头 名称 | 类型 | 必填 | 描述 Content-Type | String | 是 | 固定值:"application/json" ### 请求参数 请求参数由公共参数和业务参数两部分组成,公共参数见 请求公共参数 (https://support.dun.163.com/documents/609099986339037184?docId=632312387038056448) #### 业务参数 名称 | 类型 | 必填 | 描述 token | String | 是 | 上传设备数据时,设备指纹SDK返回的token 注:客户端超时场景下,token会很长。详见 客户端说明文档 (https://support.dun.163.com/documents/609099986339037184?docId=609101009640161280) ### 请求体示例 注意:请求体为 json 格式! Code (json): { "businessId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "token": "veWSpVfLVgRAHxVEUBN7teeWD0jxwDSv", "version": "v1", "nonce": "556cdf9ef6ed4ae68e7639c537cac548", "timestamp": 1636363470000, "secretId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "signature": "59000d09865b046c0735b7079c2ed2e6" } ## 响应 ### 响应结果 响应字段如下(响应公共字段已省略,详见 响应公共字段 (https://support.dun.163.com/documents/609099986339037184?docId=624010423698718720)): 注意:当checkResult方法返回风险字段为空时,表示未检测到异常。请注意空指针异常。 名称 | 类型 | 必须返回 | 描述 taskId | String | 是 | 此次查询操作的唯一标识 tokenCreationTime | Number | 否 | token生成时间。UNIX时间戳,单位:毫秒 device | Object | 否 | 设备相关信息 ∟deviceId | String | 是 | 设备指纹ID ∟sdkType | Number | 是 | 客户端平台类型。1-Web,2-Android,3-iOS,4-小程序 ∟checkResult | Object | 否 | 设备风险检测结果 ∟isTampered | Number | 否 | 设备数据上传请求是否被篡改。0或null-否,其它值表示被篡改 ∟isSimulator | Number | 否 | 是否为模拟器。0或null-否,其它值表示模拟器 ∟isRooted | Number | 否 | 设备是否被Root或越狱。0或null-否,其它值表示被Root或越狱 ∟isMultiRun | Number | 否 | 是否为多开。0或null-否,其它值表示为多开 ∟isVpn | Number | 否 | 是否使用VPN。0或null-否,其它值表示使用VPN ∟isProxy | Number | 否 | 是否使用代理。0或null-否,其它值表示使用代理 ∟isHooked | Number | 否 | 是否存在hook。0或null-否,其它值表示存在hook ∟isInjected | Number | 否 | 是否存在注入。0或null-否,其它值表示存在注入 ∟isDebugged | Number | 否 | 是否在调试。0或null-否,其它值表示在调试 ∟isXposed | Number | 否 | 是否安装了xposed。0或null-否,其它值表示安装了xposed ∟isCloud | Number | 否 | 是否为云手机。0或null-否,其它值表示云手机 ∟isSuspectCloud | Number | 否 | 是否疑似云手机。0或null-否,其它值表示疑似云手机 ∟isRiskRom | Number | 否 | 是否为改机ROM。0或null-否,其它值表示为改机ROM ∟isVm | Number | 否 | 是否为虚拟机。0或null-否,其它值表示为虚拟机 ∟isModify | Number | 否 | 是否为改机。0或null-否,其它值表示为改机 ∟isModifyApp | Number | 否 | 是否安装有改机类工具。0或null-否,其它值表示有安装 ∟isFlash | Number | 否 | 是否为刷机。0或null-否,其它值表示为刷机 ∟isAutoTouch | Number | 否 | 是否安装有点击工具。0或null-否,其它值表示有安装 ∟isControlApp | Number | 否 | 是否安装有群控类应用。0或null-否,其它值表示有安装 ∟isScript | Number | 否 | 是否有脚本工具。0或null-否,其它值表示有脚本工具 ∟securityScore | Number | 否 | 安全评分 ∟isCydiaSubstrate | Number | 否 | CydiaSubstrate。0或null-否,其它值-是 ∟isM1 | Number | 否 | 是否为m1。0或null-否,其它值-是 ∟isSpeedUp | Number | 否 | 是否使用加速器。0或null-否,其它值表示使用了加速器 ∟isAntiJailbreak | Number | 否 | 是否安装了反越狱插件。0或null-否,其它值表示安装了反越狱插件 ### 响应体示例 Code (json): { "code": 200, "msg": "ok", "data": { "taskId": "1721c349a446483986180c207ca6b7c2", "tokenCreationTime": 1638243086015, "device": { "deviceId": "WRp7Zryq6k1AGFVQARcutMIaP/Sw6Jlq", "sdkType": 2, "checkResult": { "isTampered": 1, "isSimulator": 1, "isRooted": 1, "isMultiRun": 1, "isVpn": 1, "isProxy": 1, "isHooked": 1, "isInjected": 1, "isDebugged": 1, "isXposed": 1, "isCloud": 1, "isSuspectCloud": 1, "isRiskRom": 1, "isVm": 1, "isModify": 1, "isModifyApp": 1, "isFlash": 1, "isAutoTouch": 1, "isControlApp": 1, "isScript": 1, "securityScore": 1, "isCydiaSubstrate": 1, "isM1": 1, "isSpeedUp": 1, "isAntiJailbreak": 1 } } } } ### 错误码 错误码有公共错误码和业务错误码两部分组成,公共错误码见 响应返回码 (https://support.dun.163.com/documents/609099986339037184?docId=624010485757640704) HTTP状态码 | 错误码code | 描述 | 排查建议 200 | 200 | 成功 | N/A ## 接入示例代码 ### 开发工具集(SDK)接入 为方便 JAVA 开发者调试和接入API,我们提供了配套的开发工具集(SDK) (https://support.dun.163.com/download/609099986339037184?productName=%E8%AE%BE%E5%A4%87%E6%8C%87%E7%BA%B9&parentName=%E4%B8%9A%E5%8A%A1%E5%AE%89%E5%85%A8),用于简化API接入流程。SDK中各接口调用方式基本相同,接入方式统一,并提供了一些接口调用过程中常见的异常处理方案。以下介绍了SDK的使用流程,以及使用SDK的简单示例。 - 准备工作 准备步骤详见通用步骤 (https://support.dun.163.com/documents/609099986339037184?docId=682781209345695744) - 使用方法 该接口的使用方法可参考SDK demo (https://github.com/yidun/yidun-java-sdk/blob/main/yidun-java-sdk-demo/src/main/java/com/netease/yidun/sdk/fingerprint/DeviceQueryDemo.java)