基础篇请看:设备指纹系列--基础篇
前段篇请看:设备指纹系列--前端篇
上接前文,我们继续来说设备指纹的后端接入方式。
--------------------------------------我是分割线----------------------------------------
接口详细描述: 根据token,appId,sign三个参数获得设备信息
1.SDK接入方法说明
1.1 Java SDK接入
- 包的引入
<dependency>
<groupId>com.dingxiang-inc</groupId>
<artifactId>ctu-client-sdk</artifactId>
<version>2.6</version>
</dependency>
- Java使用示例
public class ConstantIdDemo {
//顶象控制台,设备指纹菜单应用管理里面获取
private static String appId = "0091a3xxxxxxxxxx557fac67b2f5afb";
private static String appSecret = "e38dxxxxxxxxx6807c9e1edebaa2836";
public static void main(String[] args) throws IOException {
// 填写设备指纹域名或者url如:http://127.0.0.1:8080
CtuConstidClient client = new CtuConstidClient("https://constid.dingxiang-inc.com", appId, appSecret);
//设备指纹
String result = client.getDeviceInfo("62c5013cel9o4xxxxxxxxxtTtKW5BwWtQq9u1f1");
System.out.println(JSON.toJSON(result));
}
}
1.2 PHP SDK接入
使用示例
class Demo {
// 根据实际情况填写
const appKey = "你的AppID";
// 根据实际情况填写
const appSecret = "你的AppSecret";
// 根据实际情况填写
const token = "SDK里面获取到的token";
}
// 根据token获取设备详细信息工具类
$requestHandle = new DeviceFingerprintHandle();
// 设置请求超时时间。因为存在设备指纹降级和网络抖动的情况,默认2秒。可以根据实际情况调整
// $requestHandle->setTimeout(2);
// 填写设备指纹域名或者url入:http://127.0.0.1:9090
$responseData = $requestHandle->getDeviceInfo("https://constid.dingxiang-inc.com/udid/api/getDeviceInfo",
Demo::appKey, Demo::appSecret, Demo::token);
$result = json_decode($responseData, true);
// 请求状态码。非 200 表示没有获取到设备明细信息
if ($result['stateCode'] == 200)
echo "设备明细信息如下: : " . json_encode($result['data'], true);
else
echo $result['message'];
1.3 NodeJS SDK接入
npm i dx-const-id-sdk --save
const SDK = require('dx-const-id-sdk')
const sdk = new CaptchaSDK({
appId: '您的appId',
appSecret: '您的appSecret'
})
sdk.getDeviceInfo(token).then((data) => {
console.log(data)
}).catch(err => {
console.log('获取设备信息失败')
})
2.HTTP接口接入方法
2.1 请求参数
字段 | 类型 | 描述 |
---|---|---|
appId | String | 当前应用的标识 |
sign | String | sign = MD5(appSecret + token + appSecret),AppSecret为appId对应的密钥 |
token | String | 用户前端获取的token |
2.2 成功响应
字段 | 类型 | 描述 |
---|---|---|
stateCode | int | 状态码 |
message | String | 状态描述 |
data | Json | 返回设备信息及设备风险检测数据 |
{
"stateCode": 200,
"message": "请求响应成功",
"data": {
"hardId": "22e38229a7eda501c58bf3ddee1a340a",
......
}
}
2.3 错误响应
字段 | 类型 | 描述 |
---|---|---|
stateCode | int | 状态码 |
message | String | 状态描述 |
data | Json | 异常时数据为空 |
{
"stateCode": -10002,
"message": "签名为空或验证失败",
"data": null
}
错误码 | 描述 |
---|---|
-10001 | appId不存在或已经过期 |
-10002 | 签名为空或验证失败 |
-10003 | token为空或没有对应的设备信息 |
-10004 | token已经过期 |
-10005 | 服务器内部异常 |
-10006 | 证书已经失效 |
-10007 | 服务器限流 |
3. HTTP接口返回参数明细说明
3.1 免费用户
字段名 | 字段描述 | 说明 |
---|---|---|
token | 设备token | 默认返回 |
hardId | 设备指纹 | 默认返回 |
3.1.1 web端返回结果
字段名 | 字段描述 | 说明 |
---|---|---|
token | 设备token | 默认返回 |
hardId | 设备指纹 | 默认返回 |
3.2 收费用户
3.2.1 移动端返回结果(部分示例,更多返回字段请联系售后支持获取)
字段名 | 字段描述 | 说明 |
---|---|---|
token | 设备token | 默认返回 |
deviceType | 设备类型 | 默认返回 |
hardId | 设备指纹 | 默认返回 |
producter | 生产厂商 | 默认返回 |
macAddress | mac地址 | 默认返回 |
isEmulator | 模拟器运行 | 默认返回 |
isRoot | 是否root | 默认返回 |
isMultirun | 是否多开 | 默认返回 |
isInject | 是否存在注入风险 | 默认返回 |
isMemdump | 是否存在内存dump风险 | 默认返回 |
isDebug | 是否存在调试风险 | 默认返回 |
isHook | 是否存在hook风险 | 默认返回 |
isJailBreak | 是否越狱 | 默认返回 |
isVpn | 是否使用vpn | 默认返回 |
isProxy | 是否使用代理 | 默认返回 |
isSimulateGPS | 是否篡改GPS | 默认返回 |
isCloudPhone | 是否云真机 | 默认返回 |
3.2.2 web端返回结果(部分示例,更多返回字段请联系售后支持获取)
字段名 | 字段描述 | 说明 |
---|---|---|
token | 设备token | 默认返回 |
deviceType | 设备类型 | 默认返回 |
hardId | 设备指纹 | 默认返回 |
canvasId | canvas指纹 | 默认返回 |
webGl | WebGl指纹 | 默认返回 |
resolution | 设备分辨率 | 默认返回 |
isLiedBrowser | 是否伪造浏览器 | 默认返回 |
isCookieDisabled | 是否禁用cookie | 默认返回 |
isTamperUa | 是否篡改浏览器ua | 默认返回 |
isTamperRes | 是否篡改分辨率 | 默认返回 |
isTamperCd | 是否篡改浏览器颜色深度 | 默认返回 |
isEmulator | 是否模拟器 | 默认返回 |
以上。
完整版接入方案:设备指纹接入
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。