> >

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 收集的数据,Geetoken 有效期 10 分钟
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 传入对应的值
比如 user_id_type 为 2 时传入明文手机号
user_id_type 为 102 时,则传入 MD5 加密后的手机号
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 参数说明 账户详细信息,仅仅在账户 id 类型为 QQOpenID 或者 WechatOpenID(user_id_type 为 3 或者 4)时需要,详见下文 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 sdk 本地生成的设备指纹
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 表示未查询到
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, MiniApp 是否为调试模式
is_hook Boolean Android, iOS, Web 是否篡改
is_risk_app Boolean Android, iOS 是否安装风险应用
is_proxy Boolean Android, iOS, MiniApp 是否开启代理
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 是否为黑名单机器
is_incognito Boolean Web 是否匿名模式

risk_code 参数说明

客户端风险码 风险码说明 场景风险说明
10001 检测到包名篡改或重打包 部分黑产会篡改程序包加入广告或修改业务逻辑后,重新打包发布
10002 GeeToken 过期或者重复使用,GeeToken 有效期 10 分钟 黑产可能会缓存堆积令牌,在活动开始短时间内利用缓存令牌大批量请求业务接口
20100 检测到传统模拟器风险 黑产利用传统模拟器可以大批量完成黑产操作,比如规模化的注册、大批量登录撞库等等
20101 检测到 ARM 模拟器(或云手机)风险 黑产利用 ARM 模拟器(或云手机)可以相较于以往的技术能更高效、自动化完成黑产操作,比如可规模化的注册、大批量登录撞库等等
20200 设备存在使用多开工具风险 如羊毛党会在裂变活动在同一设备上制作多个 App 分身,登录多个账号,协同完成邀请流程
20201 检测到设备安装了改机工具风险 黑产为了躲避风控工具检测,会更改部分设备信息和属性,比如更改 IMEI 等设备标识以逃逸设备指纹的标记
20202 检测到设备安装了群控/自动化工具风险,可规模化黑产操作 高效率的控制多台设备,完成规模化操作,比如点赞转发,群发广告等
20203 检测到设备安装逆向工具风险 黑产会使用一些逆向工具,逆向应用的业务逻辑,进而篡改代码
20204 设备存在使用网络篡改工具风险 黑产通常会利用此类工具篡改网络以达到攻击的目的,比如躲避风控系统在网络标识层面的追踪和检测
20205 设备存在使用游戏修改器工具风险 打金工作室或者玩家作弊会使用此类工具完成游戏作弊
20206 检测到设备安装了虚拟定位风险 黑产通常会篡改位置信息,躲避业务在位置上的限制,或者伪造轨迹模拟真人轨迹行为
20207 当前处于安卓虚拟机环境中 黑产可在安卓设备上虚拟出一个新的安卓环境,可以完成大多数自动化攻击,比如自动下单,自动升级,自动加好友等等
20210 当前处于处于多开环境中 黑产可以在设备自带的分身应用上 ,开多个应用分身,完成多账号登录和协作
20211 当前正使用改机或风险工具 黑产为了躲避风控工具检测,会更改部分设备信息和属性,比如更改 IMEI 等设备标识以逃逸设备指纹的标记
20212 当前正使用群控或自动化工具 高效率的控制多台设备,完成规模化操作,比如点赞转发,群发广告等
20213 当前正使用逆向篡改工具 黑产会使用一些逆向工具,逆向应用的业务逻辑,进而篡改代码
20216 当前正使用虚拟定位工具 黑产通常会篡改位置信息,躲避业务在位置上的限制,或者伪造轨迹模拟真人轨迹行为
20300 设备有代码篡改低风险,使用该标签需要排除自身开发篡改的行为 有代码篡改嫌疑,可能是黑产的篡改行为,也可能是开发人员在开发中使用了篡改技术
20301 设备有代码篡改中风险,可篡改代码逻辑 有代码篡改行为,黑产篡改代码逻辑后会攻击业务接口,以达到某种牟利的目的
20302 设备有代码篡改高风险 有高风险代码篡改行为,使用了较危险的篡改技术
20303 设备存在信息伪造风险,设备属性或指纹不匹配 黑产会伪造一些设备信息,可将当前设备伪装成另一个新的设备,进而绕过业务限制进行和灰产行为
20400 设备存在被调试风险,可进行逆向分析、破解、群控自动化 通常黑产使用调试技术用于逆向分析、破解接口等场景
20401 设备开启了调试模式或使用 debug 版本的应用包 通常调试、群控或者破解会有该特征,也有部分正常用户无意中打开发者模式也会导致命中。
20500 设备开启 VPN 中 设备开启了 VPN,存在网络层面的篡改风险,通过 VPN 可躲避网络标识的追踪,甚至篡改网络
20501 设备开启网络代理中 设备存在网络代理行为,通过系统代理从指定的出口访问,躲避风控系统的检测和限制
20600 iOS 设备存在越狱行为 iOS 设备越狱能获取更高的权限,更进一步的对业务进行篡改
20601 Android 设备存在 Root 行为 黑产通常会 Root Android 设备,获取更高的权限,更进一步的对业务进行篡改
20602 Android 设备使用可疑定制 ROM 部分黑灰产设备在 Android 开源项目上定制的 ROM,有较好的伪装能力,能对业务较大的破坏性,设备系统不可信
20603 Android 设备 ROM 为安卓开源项目 正常的安卓设备都是自带厂商特性原生系统,部分黑灰产设备使用 Android 开源系统,能对业务有一定的破坏性,设备系统风险可疑
20610 设备系统版本过低 大多数灰黑产使用的的手机比较陈旧,设备性能较低,系统版本也较低,如:系统版本保持在 Android 9 和 iOS 11 以下。
21000 检测到设备未插 SIM 卡 正常用户的设备都会使用运营商 SIM 卡,无卡设备访问业务,往往来自灰黑产的设备墙和设备农场
40001 用户账号黑名单 在后台添加的账号黑名单,如手机号黑名单、微信 Openid 黑名单等
40002 IP 黑名单 在后台添加的 ip 黑名单
40003 设备指纹黑名单 在后台添加的设备指纹黑名单
40201 IP 存在恶意破解或爬虫行为 IP 曾经有过恶意破解或爬虫行为
40202 IP 存在恶意攻击行为 IP 曾经有过恶意攻击行为

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

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