>

API 请求域名

https://riskct.geetest.com

认证方式

服务端查询接口需要进行签名校验,签名算法使用HMAC-SHA256
HMAC所使用的KEYAPP_ID所定义的PRIVATE_KEY,需要在后台进行创建以及获取。
签名的消息为APP_ID与时间戳。

sign_token = hmac(key=private_key, msg=app_id+gen_time, digestmod='SHA256').hexdigest()

GeeToken 查询接口

POST /g2/api/v1/token_query

BODY 请求参数

格式 : JSON

参数名 是否必选 类型 说明
app_id string 用户的应用id
gen_time integer 时间戳,用于签名,精确到秒
gee_token string 客户端sdk收集的数据
sign_token String 数据签名,签名方式见 认证方式
attr 否(获取流量画像标签时为必传) Object 用于提交账号(手机号、idfa、imei 等)数据,获得流量画像标签,具体参见下文attr参数说明

attr参数说明

attr参数的必选参数仅针对需要进行流量风险查询的情况,如果不需要流量风险查询结果,则所有参数皆为可选参数

名称 是否必选 类型 说明
user_ip String 用户IP,支持ipv4和ipv6格式
op_timestamp Integer 用户操作的时间戳,精确到秒
account Object,具体见下文account参数说明 账户信息
device_token String 设备指纹token
device_business_id Integer 设备指纹BusinessId
business_id Integer 业务ID。网站或应用在多个业务中使用此服务,通过此ID 区分统计数据
nickname String 昵称,UTF-8 编码
phonenumber String 用户手机号
email String 用户邮箱地址(非系统自动生成)
referer String 用户HTTP 请求的Referer值
user_agent String 用户HTTP 请求的User-Agent值
x_forwarded_for String 用户HTTP 请求的X-Forwarded-For值
details Array,列表的元素参照下文detail元素说明 设备详细信息列表

account参数说明

名称 是否必选 类型 说明
account_type Integer 待校验账户类型,可选值有
1:QQ 开放账号。
2:微信开放账号。
4:手机号(暂仅支持国内手机号)。
8:设备号(imei/imeiMD5/idfa/idfaMd5等)
qq_account 否,只有account_type为1时必需 Object,具体见下文qq_account QQ开放平台账户信息
wechat_account 否,只有account_type为2时必需 Object,具体见下文wechat_account 微信开放平台账户信息
other_account 否,只有account_type为4或者8时必需 Object,具体见下文other_account 待校验的账户信息,该字段接收的是手机号、IMEI、IDFA、OAID或Android信息

qq_account参数说明

名称 是否必选 类型 说明
qq_openid String QQ的OpenID
app_id_user String QQ分配给网站或者应用的唯一ID
associate_account String 用于标识QQ用户登录后所关联业务自身的账号ID
mobile String 账号绑定的手机号
device_id String 设备ID,即IMEI或IDFA

wechat_account参数说明

名称 是否必选 类型 说明
wechat_openid String 微信的OpenID或UnionID
associate_account String 用于标识微信用户登录后所关联业务自身的账号ID
wechat_sub_type Integer 微信开放账号类型
1. 公众号、微信第三方登录
2. 小程序
rand_str 否,仅当type为2时必传 String 签名用随机字符串,建议16字符
wechat_access_token String 如果传入的微信开放账号类型为1,则传入授权用的access_token;如果微信开放账号类型为2,则传入密钥为session_key,使用 hmac_sha256算法对nonce字段签名的字符串结果
mobile String 账号绑定的手机号
device_id String 设备ID,即IMEI或IDFA

other_account参数说明

名称 是否必选 类型 说明
account_id String 对应account.account_type的唯一标识,即手机号、IMEI或者IDFA等信息;如果account.account_type为8,注意设置account.other_account.device_type字段;当md5字段设置为1时,需要传对应信息的MD5值
device_type String 设备类型,account.account_type为8时必填:
0:未知
1:Imei;国际移动设备识别号(15-17位数字)
3:Idfa
5:Oaid
7:Android
md5 Integer 是否使用md5加密account.other_account.account_id
0: 不使用
1: 使用
注:
Md5后的结果需转为小写目前支持md5加密的情况有:
1. account.account_type为4时;
2. account.account_type为8且account.other_account.device_type为1,3,5,7时imeiMd5 加密方式为:imei 明文小写后,进行 MD5 加密,加密后取小写值。 IdfaMd5 加密方式为:idfa 明文大写后,进行 MD5 加密,加密后取小写值。
mobile String 手机号,当account.account_type为4时无需重复填写
device_id String IMEI或者IDFA,当account.account_type为8时无需重复填写

参数示例

{
"app_id": "你的app_id",
"sign_token": "签名结果",
"local_id": "G01-1651029763288-58B916A3A705407E84A6BF12AAC474A4-lohA4h39",
"gen_time": 1657165827,
"attr": {
"user_ip": "117.136.52.227",
"op_timestamp": 1657165827 ,
"account": {
"account_type": 4,
"other_account": {
"account_id": "用户手机号"
}
}
},
"gee_token": "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"}

返回参数

名称 类型 说明
status String 返回结果的状态说明,success为成功
code Integer 返回结果的状态码 0为成功
data Object 具体见下文data参数说明

data 参数说明

名称 类型 说明
local_id String 设备指纹
env_check Object 风险检测项结果,如果对应的key为true表示命中该规则,否者为没有命中
device_risk_code Array(String) 该设备命中的风险码
is_risk_device Boolean 该设备是否有风险
risk_query_result Object 账号对应的流量风险查询结果,具体见下文 risk_query_result 参数说明
sign String 用户数据签名
ts Integer 服务端时间戳
client_ts Integer 客户端数据生成的时间戳

risk_query_result 参数说明

名称 类型 说明
risk_level String 风险值
pass:无恶意
review:需人工审核
reject:高风险,建议拒绝
此字段可能返回null,表示取不到有效值
risk_type Array(Interger) 风险类型列表,可能存在多个风险类型
此字段可能返回 null,表示取不到有效值,具体参照下文risk_type参数说明

参数示例

{
"status": "success",
"code": 0,
"data": {
"local_id": "G01-1651029763288-58B916A3A705407E84A6BF12AAC474A4-lohA4h39", # 设备指纹
"env_check": { # 客户端环境检测结果
"is_debug": false,
"is_simulator": false,
"is_risk_app": true,
"is_hook": true,
"is_jailbreak": true,
"is_proxy": true
},
"is_risk_device": true,
"device_risk_code": [
"20400",
"20501"
],
"risk_query_result": {
"risk_level": "pass",
"risk_type": null
},
"sign": "8e9916c5340c43fa003fe2dd54cd4e3027affbfc0d631e4cd858f64ec09fa9ed", # 用户数据签名
"ts": 1655370505149, # 服务端处理查询时的时间戳
"client_ts": 1651030257646, # 客户端数据体生成时的时间戳
}
}

env_check参数说明

名称 类型 客户端类型 说明
is_simulator Boolean Android, iOS, Web 是否为模拟器
is_debug Boolean Android, iOS, Web 是否为调试模式
is_hook Boolean Android, iOS, Web 是否篡改
is_risk_app Boolean Android, iOS 是否安装风险应用
is_proxy Boolean Android, iOS 是否开启代理
is_muti_open Boolean Android, iOS 是否多开应用
is_vpn Boolean Android 是否开启VPN
is_root Boolean Android 是否为Root机器
is_jailbreak Boolean iOS 是否为越狱机器
is_headless Boolean Web 是否为无头浏览器

device_risk_code 参数说明

客户端风险码 说明
10001 检测到包名篡改
20100 检测到传统模拟器风险
20101 检测到 ARM 模拟器风险
20200 设备存在多开风险
20201 设备有改机风险
20202 设备有群控/自动化工具风险
20203 设备存在逆向环境风险
20204 设备有网络篡改风险
20205 设备有修改器风险
20206 设备有虚拟定位风险
20300 设备有代码篡改低风险
20301 设备有代码篡改中风险
20302 设备有代码篡改高风险
20303 设备存在信息伪造风险
20400 设备存在调式风险
20500 设备开启 VPN
20501 设备开启代理
20600 设备存在越狱环境
20601 设备存在 Root 环境
90100 设备为可疑定制机

risk_type 参数说明

账号风险码 一级说明 二级说明
1 账号信用低 账号近期存在因恶意被处罚历史,网络低活跃,被举报等因素
11 疑似低活跃账号 账号活跃度与正常用户有差异
2 垃圾账号 疑似批量注册小号,近期存在严重违规或大量举报
21 疑似小号 账号有疑似线上养号,小号等行为
22 疑似违规账号 账号曾有违规行为、曾被举报过、曾因违规被处罚过等
3 无效账号 无效账号 送检账号参数无法成功解析,请检查微信openid 是否有误/QQopenid是否与QQ开发平台的appid关联,手机号是否为中国大陆手机号
4 黑名单 该账号在业务侧有过拉黑记录
5 白名单 业务自行有添加过白名单记录
101 批量操作 存在 ip/设备/环境等因素的聚集性异常
1011 疑似 IP 属性聚集 出现 IP 聚集
1012 疑似设备属性聚集 出现设备聚集
102 自动机 疑似自动机批量请求
103 恶意行为-网赚 疑似网赚
104 微信登录态无效 检查 wxtoken 参数,是否已经失效
201 环境异常 操作 ip/设备/环境存在异常。当前 ip 为非常用 ip 或恶意 ip 段
2011 疑似非常用IP 请求 当前请求 IP 非该账号常用 IP
2012 疑似 IP 异常 使用 idc 机房 ip 或 使用代理 ip 或 使用恶意 ip 等
205 非公网有效ip 传进来的 IP 地址为内网 ip 地址或者 ip 保留地址;
206 设备异常 该设备存在异常的使用行为
2061 疑似非常用设备 当前请求的设备非该账号常用设备
2062 疑似虚拟设备 请求设备为模拟器、脚本、云设备等虚拟设备
2063 疑似群控设备 请求设备为猫池、手机墙等群控设备