AI反打金接口
2024.10.11 14:18:49
接口说明
本接口是智能风控服务的AI反打金接口。AI反打金工作室主要依据游戏内玩家日志,使用AI模型算法对行为一致的群体进行牟利识别的全链路功能方案。通过群体行为和交易两个环节全面掌控工作室牟利路径、牟利变现模式以及牟利规模,从而达到维护厂商游戏生态平衡、保障厂商收入不受工作室侵蚀,提升用户体验的效果。当前版本为V5。
鉴权说明
易盾智能风控服务使用签名认证方法对接口进行鉴权,所有接口每一次请求都需要包含签名信息(signature 参数),以验证用户身份,防止信息被恶意篡改。目前支持MD5签名算法,详细信息请参见接口鉴权。
接入须知
请控制接口调用频率,默认qps为1000,频率过高,可能会超过频率限制,导致接口调用失败。上线前有需要提升qps需要可以联系易盾专属商务。
请求说明
请求地址
名称 | 值 |
---|---|
HTTP URL | http://ir-open.dun.163.com/v5/risk/antiGoldCheck |
HTTP Method | POST |
请求头
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | String | 是 | 固定值:"Content-Type:application/json" |
请求参数
请求参数包括:公共参数和私有参数。其中,公共参数请见公共请求参数,接口私有参数如下:
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
logTime | String | 是 | 64 | 实际记录日志的时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TMEZONE;yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC8小时,即北京时间)。例如:2023-05-20T13:29:35+08:00表示,北京时间2023年5月20日13点29分35秒。示例值:2023-06-08T10:34:56+08:00。 |
account | String | 是 | 256 | 用户账号标识,建议使用业务方用户的UID,标记用户的唯一身份。 |
roleId | String | 是 | 256 | 用户角色ID,适用于支持同一个账号下创建不同角色的业务(如游戏不同区服的角色)。 |
nickname | String | 是 | 256 | 用户角色的昵称。 |
serverId | String | 是 | 32 | 当前游戏角色所在游戏区服的ID(所属服务器ID) |
logType | String | 是 | - | 日志类型: - createRole: 角色创建日志 - loginRole: 角色登录日志 - logoutRole: 角色登出日志 - trade: 交易日志 - chat: 言论日志 - gamePlay: 非PVP玩法日志 - pvp: PVP玩法日志 - resourceChange: 资源变化日志 - punish: 处罚日志 |
logData | String | 是 | - | 具体的日志数据,json字符串格式(utf-8编码),json内容见:不同类型日志接入说明 |
不同类型日志接入说明
角色创建日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
ip | String | 是 | 16 | ipv4网络地址,在外网登录的记录一定要是外网ip。例:115.60.131.66。 |
ipv6 | String | 否 | 128 | ipv6地址,如果是ipv6网络才记录。 |
deviceModel | String | 是 | 512 | 设备型号,直接获取通过系统提供API返回的设备制造商, 设备型号, CPU名称, CPU核心数, CPU频率, GPU名称字符串,并使用分割符号#进行拼接。 |
osName | String | 是 | 16 | 操作系统,操作系统名称,如ios, android, windows, ubuntu, symbian等,注意不要获取到操作系统版本 |
osVersion | String | 是 | 16 | 操作系统版本,设备操作系统版本号 如:6.1, 2.3等 |
macAddr | String | 是 | 64 | 设备mac地址,如08:00:20:0A:8C:6D;android6.0以上才有,ios7.0以后应该无法获取,ios系统如果无法获取,可以将该字段置空 |
udid | String | 是 | 64 | 设备唯一标示符 |
nation | Integer | 否 | 8 | 国家编码,如86表示中国,不写默认是中国 |
appChannel | String | 是 | 64 | 运营渠道,如app_store/ 91_assistant /netease等 |
appVersion | String | 是 | 64 | 客户端版本号 |
emulatorFlag | Boolean | 是 | - | 是否模拟器 |
rootFlag | Boolean | 是 | - | 是否root |
createTime | Long | 是 | 13 | 角色创建时间,请传入时间戳,单位:毫秒 |
角色登录日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
ip | String | 是 | 16 | ipv4网络地址,在外网登录的记录一定要是外网ip。例:115.60.131.66。 |
ipv6 | String | 否 | 128 | ipv6地址,如果是ipv6网络才记录。 |
deviceModel | String | 是 | 512 | 设备型号,直接获取通过系统提供API返回的设备制造商, 设备型号, CPU名称, CPU核心数, CPU频率, GPU名称字符串,并使用分割符号#进行拼接。 |
deviceHeight | Integer | 是 | 8 | 设备屏幕高度(屏幕分辨率) |
deviceWidth | Integer | 是 | 8 | 设备屏幕宽度(屏幕分辨率) |
osName | String | 是 | 16 | 操作系统,操作系统名称,如ios, android, windows, ubuntu, symbian等,注意不要获取到操作系统版本 |
osVersion | String | 是 | 16 | 操作系统版本,设备操作系统版本号 如:6.1, 2.3等 |
macAddr | String | 是 | 64 | 设备mac地址,如08:00:20:0A:8C:6D;android6.0以上才有,ios7.0以后应该无法获取,ios系统如果无法获取,可以将该字段置空 |
udid | String | 是 | 64 | 设备唯一标示符 |
nation | Integer | 否 | 8 | 国家编码,如86表示中国,不写默认是中国 |
networkType | String | 是 | 16 | 网络连接,有3g, 2.5g, 4g, wifi几种。 |
appChannel | String | 是 | 64 | 运营渠道,如app_store/ 91_assistant /netease等 |
appVersion | String | 是 | 64 | 客户端版本号 |
emulatorFlag | Boolean | 是 | - | 是否模拟器 |
rootFlag | Boolean | 是 | - | 是否root |
createTime | Long | 是 | 13 | 角色创建时间,请传入时间戳,单位:毫秒 |
level | Integer | 是 | 8 | 角色等级 |
loginTime | Long | 是 | 13 | 角色登录游戏的时间,请传入时间戳,单位:毫秒 |
vipLevel | Integer | 是 | 8 | 角色vip等级 注意:如果不写,则默认游戏内没有vip等级 |
lastLogoutTime | Long | 是 | 13 | 角色上次退出游戏的时间,请传入时间戳,单位:毫秒 |
offlineMoney | Long | 否 | 13 | 离线产出游戏币,本次登陆奖励的游戏币数目,包括离线挂机奖励。 注意:如果游戏内没有这个数据,可以不添加,如游戏不是mmo的 |
offlineExp | Long | 否 | 13 | 离线产出经验,本次登陆奖励的经验,包括离线挂机奖励。 注意:如果游戏内没有这个数据,可以不添加,如游戏不是mmo |
offlineItemList | List |
否 | 最大元素个数: 100 | 奖励物品,物品字段见:物品字段 |
参数名 | 类型 | 必填 | 最大长度 | 描述i |
---|---|---|---|---|
itemId | String | 是 | 128 | 物品id |
itemName | String | 是 | 128 | 物品名称 |
count | Integer | 是 | 8 | 物品数量 |
角色登出日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
ip | String | 是 | 16 | ipv4网络地址,在外网登录的记录一定要是外网ip。例:115.60.131.66。 |
ipv6 | String | 否 | 128 | ipv6地址,如果是ipv6网络才记录。 |
deviceModel | String | 是 | 512 | 设备型号,直接获取通过系统提供API返回的设备制造商, 设备型号, CPU名称, CPU核心数, CPU频率, GPU名称字符串,并使用分割符号#进行拼接。 |
deviceHeight | Integer | 是 | 8 | 设备屏幕高度(屏幕分辨率) |
deviceWidth | Integer | 是 | 8 | 设备屏幕宽度(屏幕分辨率) |
osName | String | 是 | 16 | 操作系统,操作系统名称,如ios, android, windows, ubuntu, symbian等,注意不要获取到操作系统版本 |
osVersion | String | 是 | 16 | 操作系统版本,设备操作系统版本号 如:6.1, 2.3等 |
macAddr | String | 是 | 64 | 设备mac地址,如08:00:20:0A:8C:6D;android6.0以上才有,ios7.0以后应该无法获取,ios系统如果无法获取,可以将该字段置空 |
udid | String | 是 | 64 | 设备唯一标示符 |
networkType | String | 是 | 16 | 网络连接,有3g, 2.5g, 4g, wifi几种。 |
appChannel | String | 是 | 64 | 运营渠道,如app_store/ 91_assistant /netease等 |
appVersion | String | 是 | 64 | 客户端版本号 |
emulatorFlag | Boolean | 是 | - | 是否模拟器 |
rootFlag | Boolean | 是 | - | 是否root |
createTime | Long | 是 | 13 | 角色创建时间,请传入时间戳,单位:毫秒 |
level | Integer | 是 | 8 | 角色等级 |
vipLevel | Integer | 是 | 8 | 角色vip等级 注意:如果不写,则默认游戏内没有vip等级 |
exp | Long | 是 | 13 | 角色经验 |
logoutTime | Long | 是 | 13 | 角色登出游戏的时间,请传入时间戳,单位:毫秒 |
onlineTime | Long | 是 | 13 | 在线时长 |
scene | String | 否 | 128 | 登出场景,登出时所在场景 |
axis | String | 否 | 128 | 登出坐标,登出时所在场景坐标,应该是 (x,y,z)的形式 |
lastOperation | String | 是 | 128 | 登出前操作 |
moneySum | Long | 是 | 13 | 本次在线累计获得金钱总量(可选字段) |
expSum | Long | 是 | 13 | 本次在线累计获得经验总量,每次登出的时候将本次在线所有系统产生游戏币进行累加 |
itemSumList | List |
否 | 最大元素个数: 100 | 本次在线累计获得重要物品或资源,每次登出的时候将本次在线所有你希望监控的重要资源或者物品进行累计,通过物品资源表形式写出,物品字段见:物品字段 |
交易日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
tradeTime | Long | 是 | 13 | 流通时间,请传入时间戳,单位:毫秒 |
type | String | 是 | 128 | 流通类型,游戏内流通方式,举例:交易、给予、摆摊、玩家寄售等 |
detail | String | 否 | 128 | 流通明细,对于流通类型的详细描述。如果没有特定这次流通的信息需要记则不记录 |
sourceOldAccountId | String | 否 | 256 | 源账号游客身份标识符,记录曾经用过的游客的账号。 |
sourceMac | String | 是 | 64 | 源角色mac |
sourceMoney | Long | 是 | 13 | 源角色给的游戏币,游戏中可流通的货币 |
sourceUUID | String | 否 | 64 | 源物品唯一ID,若每个物品就算类型一样也有唯一的标识符(如UUID),则记录,标识这一个物品 |
sourceItemId | String | 是 | 128 | 源物品标识符,(标志同一种物品),非中文。 |
sourceItemName | String | 是 | 128 | 源物品名称 |
sourceItemType | String | 否 | 128 | 源物品类型,物品类型,如weapon(武器),remedy(药物) |
sourceItemCount | Integer | 是 | 8 | 源物品数量 |
targetAccountId | String | 是 | 256 | 目标账号唯一标识 |
targetOldAccountId | String | 否 | 256 | 目标账号游客身份标识符,游戏账号的唯一标示符,用于统计用户数 |
targetRoleId | String | 是 | 256 | 目标角色ID |
targetRoleName | String | 是 | 256 | 目标角色昵称 |
targetMac | String | 是 | 64 | 目标角色MAC |
targetMoney | Long | 是 | 13 | 目标给钱 |
targetUUID | String | 否 | 128 | 目标物品唯一ID,若每个物品就算类型一样也有唯一的标识符(如UUID),则记录在此 |
targetItemId | String | 是 | 128 | 目标物品名称编号,目标物品标识符,(标志同一种物品),非中文。 |
targetItemName | String | 是 | 128 | 目标物品名称 |
targetItemType | String | 否 | 128 | 目标物品类型,如weapon(武器),remedy(药物) |
targetItemCount | Integer | 是 | 8 | 目标物品数量 |
言论日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
oldAccount | String | 否 | 256 | 游客身份标识符,记录曾经用过的游客的账号。 |
level | Integer | 是 | 8 | 角色等级 |
macAddr | String | 是 | 64 | 设备mac地址,如08:00:20:0A:8C:6D;android6.0以上才有,ios7.0以后应该无法获取,ios系统如果无法获取,可以将该字段置空 |
udid | String | 是 | 64 | 设备唯一标示符 |
content | String | 是 | 1024 | 发言内容 |
channel | String | 是 | 128 | 发言频道 |
scene | String | 是 | 128 | 发言场景 |
axis | String | 是 | 128 | 发言坐标,发言时所在场景坐标,应该是 (x,y,z)的形式 |
chatTime | Long | 是 | 13 | 发言时间,请传入时间戳,单位:毫秒 |
yAccount | String | 是 | 256 | 发言对象账号ID,和玩家私聊时记录;如在公共频道发言,不用记录或者记录空字符串 |
yRoleId | String | 是 | 256 | 发言对象角色Id,和玩家私聊时记录;如在公共频道发言,不用记录或者记录空字符串 |
yRoleLevel | Integer | 是 | 8 | 发言对象等级,和玩家私聊时记录;如在公共频道发言,不用记录或者记录空字符串 |
yLevelName | String | 是 | 256 | 发言对象昵称,和玩家私聊时记录;如在公共频道发言,不用记录或者记录空字符串 |
非PVP玩法日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
oldAccount | String | 否 | 256 | 游客身份标识符,记录曾经用过的游客的账号。 |
macAddr | String | 是 | 64 | 设备mac地址,如08:00:20:0A:8C:6D;android6.0以上才有,ios7.0以后应该无法获取,ios系统如果无法获取,可以将该字段置空 |
udid | String | 是 | 64 | 设备唯一标示符 |
gameplayName | String | 是 | 128 | 玩法名称,需唯一标识该任务或玩法 |
beginRoleLevel | Integer | 是 | 8 | 开始角色等级,进入玩法时的玩家角色等级 |
beginTime | Long | 是 | 13 | 开始时间,进入玩法的时间,请传入时间戳,单位:毫秒 |
endRoleLevel | Integer | 是 | 8 | 结束角色等级,退出玩法时的的玩家角色等级 |
useTime | Integer | 是 | 8 | 玩法耗时 |
endState | Integer | 是 | 8 | 玩法结果,失败:0,胜利:1,平手:2 |
costMoney | Long | 否 | 13 | 玩法消耗游戏币 |
costItemList | List |
否 | 最大元素个数: 100 | 玩法消耗物品,物品Item见:物品字段 |
prodMoney | Long | 否 | 13 | 玩法产出游戏币 |
prodItemList | List |
否 | 最大元素个数: 100 | 玩法产出物品,物品Item见:物品字段 |
prodExp | Long | 否 | 13 | 玩法产出经验 |
PVP玩法日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
beginTime | Long | 是 | 13 | 开始时间,进入玩法的时间,请传入时间戳,单位:毫秒 |
useTime | Integer | 是 | 8 | 玩法耗时 |
pvpName | String | 是 | 128 | 玩法名称:PVP玩法名称,需唯一标识该任务或玩法 |
endState | Integer | 是 | 8 | 玩法结果 |
sourceOldAccountId | String | 否 | 256 | 源账号游客身份标识符,记录曾经用过的游客的账号。 |
sourceRoleLevel | Integer | 是 | 8 | 源角色等级 |
sourceCostMoney | Long | 否 | 13 | 源角色消耗游戏币 |
sourceCostItemList | List |
否 | 最大元素个数: 100 | 源角色消耗物品 |
sourceProdMoney | Long | 否 | 13 | 源角色产出游戏币 |
sourceProdItemList | List |
否 | 最大元素个数: 100 | 源角色产出物品 |
sourceProdExp | Long | 否 | 13 | 源角色产出经验 |
sourceDeviceModel | String | 是 | 512 | 源角色设备型号,直接通过系统提供API返回的字符串 |
sourceOSName | String | 是 | 16 | 源角色操作系统,直接通过系统提供API返回的字符串,如ios, android, windows, ubuntu, symbian等 |
sourceOSVersion | String | 是 | 16 | 源角色操作系统版本,设备操作系统版本号,如6.1, 2.3 |
sourceMacAddr | String | 是 | 64 | 源角色设备mac地址,如08:00:20:0A:8C:6D;android6.0以上才有,ios7.0以后应该无法获取 |
sourceUDID | String | 是 | 64 | 源角色设备唯一标示符,设备UDID号, 具体参见关于UDID说明章节,用于统计设备数 |
targetAccountId | String | 是 | 256 | 目标用户唯一标识,游戏账号的唯一标示符,用于统计用户数量。具体参考accountId说明 |
targetOldAccountId | String | 否 | 256 | 源账号游客身份标识符,记录曾经用过的游客的账号。 |
targetRoleId | String | 是 | 256 | 目标角色ID,目标角色唯一标识,在所有服唯一。 |
targetNickname | String | 是 | 256 | 目标角色昵称 |
targetRoleLevel | Integer | 是 | 8 | 目标角色等级 |
targetCostMoney | Long | 否 | 13 | 目标角色消耗游戏币 |
targetCostItemList | List |
否 | 最大元素个数: 100 | 目标角色消耗物品 |
targetProdMoney | Long | 否 | 13 | 目标角色产出游戏币 |
targetProdItemList | List |
否 | 最大元素个数: 100 | 目标角色产出物品 |
targetProdExp | Long | 否 | 13 | 目标角色产出经验 |
targetDeviceModel | String | 是 | 512 | 目标角色设备型号,直接通过系统提供API返回的字符串 |
targetOSName | String | 是 | 16 | 目标角色操作系统,直接通过系统提供API返回的字符串,如ios, android, windows, ubuntu, symbian等 |
targetOSVersion | String | 是 | 16 | 目标角色操作系统版本,设备操作系统版本号,如6.1, 2.3 |
targetMacAddr | String | 是 | 64 | 目标角色设备mac地址,如08:00:20:0A:8C:6D;android6.0以上才有,ios7.0以后应该无法获取 |
targetUDID | String | 是 | 64 | 目标角色设备唯一标示符,设备UDID号, 具体参见关于UDID说明章节,用于统计设备数 |
资源变化日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
oldAccount | String | 否 | 256 | 游客身份标识符,记录曾经用过的游客的账号。 |
level | Integer | 是 | 8 | 角色等级 |
reason | String | 是 | 128 | 奖励原因:资源变化原因 |
bonusMoney | Long | 否 | 13 | 奖励游戏币 |
bonusItemList | List |
否 | 最大元素个数: 100 | 奖励物品,物品Item见:物品字段 |
bonusExp | Long | 否 | 13 | 奖励经验 |
处罚日志
参数名 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
level | Integer | 是 | 8 | 角色等级 |
reason | String | 是 | 128 | 奖励原因:资源变化原因 |
type | String | 是 | 128 | 处罚类型:警告、封号、限制玩法 |
punishTimestamp | Long | 是 | 13 | 处罚时间,请传入时间戳,单位:毫秒 |
请求参数示例
{
"businessId": "a0bcmo3aa617x1n62tlhtragdd009wy1",
"secretId": "b0bcmo3aa617x1n62tlhtragdd009wy2",
"timestamp": ${currentTimeMs},
"nonce": "c0bcmo3aa617x1n62tlhtragdd009wy3",
"version": "601",
"signature": "d0bcmo3aa617x1n62tlhtragdd009wy4",
"logTime": "2023-09-08T16:00:43+08:00",
"account": "yyyyyyy",
"roleId": "xxxxxxx",
"nickname": "zzzzzzz",
"serverId": "150",
"logType": "punish",
"logData": "{\"level\":\"100\",\"reason\":\"xxx\",\"type\":警告,\"punishTimestamp\":\"xxx\"}"
}
响应
响应结果
响应数据格式为:JSON。
响应头为:Content-Type:application/json,具体如下:
参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码,正常情况下为200,异常时,见 附录响应码定义 |
msg | String | 响应码说明,正常情况下返回"ok",异常时,见 附录响应码定义 |
响应结果示例
{
"code": 200,
"msg": "ok!",
"ok":true
}
响应返回码
响应返回码见:响应返回码
接入示例代码
服务端 SDK 接入
推荐使用我们提供的服务端 SDK 进行接入(目前支持 Java 和 Go 两种语言),不但可以节省接入成本,实现更快速的集成,并享有灵活的请求配置选项,同时 SDK 内置了错误重试、熔断降级等功能,提升服务可用性。点击 服务端 SDK 接入指引了解更多。