>

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收集的数据
scene String 本次查询场景:
1. login
2. sign_up
3. activity
默认为 activity
sign_token String 数据签名,签名方式见 认证方式
attr Object 用于提交账号数据,获得账号画像标签,具体参见下文attr参数说明

attr参数说明

名称 是否必选 类型 说明
user_ip String 用户IP,支持ipv4和ipv6格式, ip_type目前只支持国内ipv4的ip
op_timestamp 否,当需要获取账号画像标签为必传 Integer C端用户发起业务操作(注册、领奖、下单等)的时间戳,精确到秒
user_id 否,当需要获取账号画像标签为必传 String 账户id
user_id_type 否,当需要获取账号画像标签为必传 Integer 0: 自定义
1: Email
2: 手机号
102: MD5加密手机号
3: QQOpenID
4: WechatOpenID
当需要获取账号画像标签应为[2,102,3,4]中一种, 自定义与Email暂时不支持
user_id_detail 否,仅当user_id_type为3或者4时为必选 Object,具体见下文user_id_detail参数说明 账户详细信息,详见下文user_id_detail参数说明

user_id_detail参数说明

user_id_type 为3时

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

user_id_type为4时

名称 是否必选 类型 说明
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

参数示例

{
"app_id": "你的app_id",
"sign_token": "签名结果",
"gen_time": 1657165827,
"scene": "sign_up",
"attr": {
"user_ip": "117.136.52.227",
"op_timestamp": 1657165827 ,
"user_id": "用户手机号",
"user_id_type": 2
},
"gee_token": "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"}

返回参数

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

data 参数说明

名称 类型 说明
local_id String 基础的设备指纹
root_id String 高级的设备指纹(设备验高级版本返回)
env_check Object 风险检测项结果,如果对应的key为true表示命中该规则,否则为没有命中
risk_code Array(Integer) 当前流量命中的风险码
risk_level String 账号风险处置建议
pass:无恶意
review:需人工审核
reject:高风险,建议拒绝
此字段可能返回null,表示取不到有效值
ip_type Integer ip 风险画像,只支持国内ipv4的ip
1 表示数据中心
2 表示专用出口
3 表示普通宽带
4 表示移动宽带
5 表示媒体方IP
6 表示已知爬虫
7 表示中小运营商
-1 表示ip格式不支持
is_risk_device Boolean 当前流量所使用的设备是否有风险
sign String 客户端提交的用户业务数据的签名,用于校验或关联业务数据和安全结果。签名规则为sign = sha256(具有唯一性的业务数据).hexdigest(),唯一性的业务数据一般为业务流水号或凭据。如果在客户端上未提供业务数据则返回为空字符串。
ts Integer 服务端时间戳
client_ts Integer 客户端数据生成的时间戳

参数示例

{
"status": "success",
"code": 0,
"data": {
"local_id": "247A8CCF15054743B781759621570060",
"env_check": {
"is_debug": true,
"is_simulator": false,
"is_risk_app": true,
"is_hook": false,
"is_jailbreak": false,
"is_proxy": true,
"is_muti_open": false,
"is_blacklist_device": false
},
"sign": "8e9916c5340c43fa003fe2dd54cd4e3027affbfc0d631e4cd858f64ec09fa9ed",
"ts": 1666772160860,
"client_ts": 1655369276590,
"root_id": "GEE4-01-6d1bd4541d5b9f679cda9086bb3dffaf1f42992917f23f11a63da390ebff6014",
"risk_code": [
10001,
20210,
20400,
20501
],
"risk_level": "pass",
"is_risk_device": true,
"ip_type": 4
}
}

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_blacklist_device Boolean Android, iOS 是否为黑名单机器

risk_code 参数说明

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

(以下风险码需正确传入 attr参数 才会返回)

账号风险码 一级说明 二级说明
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 疑似群控设备 请求设备为猫池、手机墙等群控设备