#
数美天网-游戏任务打金版权所有 翻版必究
游戏资源交易#
具体接口#
请求URL:#
集群 | URL | 支持产品列表 |
---|---|---|
北京 | http://api-skynet-bj.fengkongcloud.com/v4/event | 天网风险识别 |
美国(弗吉尼亚) | http://api-skynet-fjny.fengkongcloud.com/v4/event | 天网风险识别 |
新加坡 | http://api-skynet-xjp.fengkongcloud.com/v4/event | 天网风险识别 |
欧洲(法兰克福) | http://api-skynet-eur.fengkongcloud.com/v4/event | 天网风险识别 |
请求方法:#
POST
字符编码:#
UTF-8
建议超时时间:#
1s
请求参数:#
请求body = 通用请求参数 + 事件特有参数 (放在data字段下)
通用的请求参数:#
放在HTTP Body中,采用Json格式,具体参数如下:
参数名称 | 类型 | 参数说明 | 是否必传 | 规范 |
---|---|---|---|---|
accessKey | string | 接口认证密钥 用于权限认证,开通账号服务时由数美提供或使用开通邮箱登录数美后台右上角相关文档处查看 | 必传参数 | 数美分配 |
appId | string | 应用ID,用于区分相同公司的不同应用 | 必传参数 | 该参数传递值可与数美协商 |
eventId | string | 事件ID,用于标识事件类型。 | 必传参数 | 不同的事件对应不同的策略,不同的事件输入参数可能会有细微的差别,请对应按照各事件详细传参说明 |
data | json_object | 请求的数据内容,事件特有参数可以放入data下传入 | 必传参数 | 请求的数据内容,最长10MB,详见data参数 |
参数名称 | 类型 | 参数说明 | 是否必传 | 规范 |
---|---|---|---|---|
tokenId | string | 用户账号标识,建议使用贵司用户UID(可加密)自行生成 , 标识用户唯一身份用作灌水和广告等行为维度风控。如无用户uid的场景建议使用唯一的数据标识传值 | 必传参数 | 该ID为用户的唯一标识,且与其它数美接口的tokenId保持一致 注意点:同一个公司有多应用时,存在两种情况: 1) 业务上跨应用相同用户ID背后同一个人使用,传入原始用户ID即可。2) 业务上跨应用相同用户ID背后不同人使用,传入应用ID和用户ID拼接值,保证传入的tokenId值能唯一标识用户,如appId_tokenId。 |
ip | string | 当前业务事件发生时的客户端公网ipv4地址 | 必传参数 | 非内网ip |
timestamp | int64 | 当前业务事件发生时的时间戳,单位为毫秒(ms) | 必传参数 | |
deviceId | string | 数美设备指纹标识,由数美SDK生成 | 强烈建议 | 数美设备指纹标识,用于用户行为分析。 注: 1. 接入数美SDK前的版本,无法获取到deviceId的情况下,deviceId传空“”即可; 2. 直接传输getDeviceId获取到的原始字段,不需要解密 (需嵌入android ios harmony web的SDK,web SDK用于官网页面、H5页面) |
activityType | string | 活动类型,主要分为线下活动和线上活动。根据不同活动类型可以调用不同策略 | 建议 | 可选值:online_activity、offline_activity。online_activity为线上活动,如线上签到等;offline_activity为线下活动,如地推拉新活动等; |
os | string | 应用端操作系统类型 | 强烈建议 | 可选值:android、ios、weapp、harmony、web ;在注册事件中若来自官网注册,则注册事件的os传“web” |
appVersion | string | 应用版本号 | 强烈建议 | 传入当前应用或服务正在使用的版本号,格式为3个点4段数字,每段数字最多4位,例如3.2.1.1234 。不足4段的请补0,例如2.1.5 传入2.1.5.0 。多于4段的取前4段,例如2.1.5.1.1 传入2.1.5.1 。 |
countryCode | string | 手机用户的国家代码 | 强烈建议 | 中国大陆区手机号填写0086 非中国大陆区手机号填写国家代码例如:美国填写0001 、安道尔0376 、巴哈马1242 |
phoneMd5 | string | 手机号的Md5,32位小写加密串 | 建议 | |
level | int | 用户战力值档位,注册事件不传,登录、做任务、下虚拟订单事件都需要传 | 强烈建议 | 可酌情讨论定义档位 可选值:0,1,2,3,4分别对应: 0:最低级用户, 1:较低级用户, 2:中等级用户,典型如具备一定活跃或等级中等的用户等 3:较高级用户,典型如高活跃或高等级用户等 4:最高级用户,典型如高付费用户、VIP用户、可考虑放过的用户等 |
passThrough | json | 用户自定义透传字段 | 建议 | 如无必要,不传 |
返回结果#
放在HTTP Body中,采用Json格式,具体参数如下:
参数名称 | 类型 | 参数说明 | 是否必返 | 规范 |
---|---|---|---|---|
code | int | 返回码 | 是 | 1100 :成功1901 :QPS超限1902 :参数不合法1903 :服务失败9101 :无权限操作除message和requestId之外的字段,只有当code为1100时才会存在 |
message | string | 返回码描述 | 是 | 和code对应:成功 QPS超限 参数不合法 服务失败 余额不足 无权限操作 |
requestId | string | 请求标识 | 是 | 请求唯一标识,用于排查问题和后续效果优化,强烈建议保存 |
riskLevel | string | 当前事件的处置建议 | 是 | PASS :通过REVIEW :审核REJECT :拒绝VERIFY :验证 |
detail | json_object | 风险详情信息,详情见下文 | 是 | 请见《detail结果详情》表 |
tokenProfileLabels | json_array | 账号属性标签 | 否 | 见下面详情内容,仅在服务开通时返回 |
tokenRiskLabels | json_array | 账号风险标签 | 否 | 见下面详情内容,仅在服务开通时返回 |
其中
1)detail结果的详情内容
返回结果参数名 | 参数类型 | 参数说明 | 规范 |
---|---|---|---|
description | string | 当前事件的风险描述 | |
model | string | 规则标识,命中的最高优先级规则标识 | |
hits | Json array | 事件命中的所有规则标识 | hits中每个字段都是一个object,详见《hits结果详情信息》 |
ip_country | string | ip归属地国家 | |
ip_province | string | ip归属地省份 | |
ip_city | string | ip归属地城市 | |
verifyType | string | 当处置建议为VERIFY 时,返回verifyType | UPSMS :上行短信验证码DOWNSMS :下行短信验证码CAPTCHA :验证码(点选或滑动等)SEQUENCE :语序验证(点选或输入)SPATIAL :空间逻辑推理FACE :人脸检测DELAY :延时交易 |
machineAccountRisk | json | 账号历史打黑信息 | 只有当前账号历史被打入账号黑库后,账号的相关流水才会返回该结构体 |
其中,hits结果详情的内容如下:
返回结果参数名 | 参数类型 | 参数说明 | 规范 |
---|---|---|---|
description | string | 当前事件的风险描述 | |
model | string | 规则标识 | |
riskLevel | string | 当前事件的处置建议 | PASS :通过REVIEW :审核REJECT :拒绝VERIFY :验证 |
verifyType | string | 当处置建议为VERIFY 时,返回verifyType | UPSMS :上行短信验证码DOWNSMS :下行短信验证码CAPTCHA :验证码(点选或滑动等)SEQUENCE :语序验证(点选或输入)SPATIAL :空间逻辑推理FACE :人脸检测DELAY :延时交易 |
其中,machineAccountRisk详情的内容如下:
返回结果参数名 | 参数类型 | 参数说明 | 规范 |
---|---|---|---|
tokenSampleLastTs | int64 | 最近打黑时间,毫秒级 | 如:"tokenSampleLastTs": 1683026613000 |
tokenSampleDesc | string | 历史打黑策略的description | 如:"tokenSampleDesc": "高风险设备:IP异常聚集" |
其中标签类返回字段
1)tokenProfileLabels的详情内容
返回结果参数名 | 参数类型 | 参数说明 | 规范 |
---|---|---|---|
label1 | string | 一级标签 | 展示账号属性标签的一级标签。 |
label2 | string | 二级标签 | 展示账号属性标签的二级标签。 |
label3 | string | 三级标签 | 展示账号属性标签的三级标签。 |
description | string | 风险描述 | 展示账号属性标签的中文描述。 |
timestamp | int64 | 最近一次命中策略的时间 | 最近一次命中策略的时间 |
detail | json_object | 证据描述 | 证据细节 |
2)tokenRiskLabels的详情内容
返回结果参数名 | 参数类型 | 参数说明 | 规范 |
---|---|---|---|
label1 | string | 一级标签 | 展示账号风险标签的一级标签。 |
label2 | string | 二级标签 | 展示账号风险标签的二级标签。 |
label3 | string | 三级标签 | 展示账号风险标签的三级标签。 |
description | string | 风险描述 | 展示账号风险标签的中文描述。 |
timestamp | int64 | 最近一次命中策略的时间 | 最近一次命中策略的时间 |
detail | json_object | 证据描述 | 证据细节 |
其中,团伙账号标签(risk_group_token)的detail详情内容如下:
返回结果参数名 | 参数类型 | 参数说明 |
---|---|---|
groups | json_array | 多个团伙信息数组,元素为group |
group内容如下:
参数名 | 参数类型 | 参数说明 |
---|---|---|
memberIds | array | 团伙成员账号 |
memberCount | int | 团伙规模大小,本团伙内账号总量 |
groupId | string | 团伙唯一标识 |
reason | string | 成团原因 |
ts | string | 打上团伙标签的时间 |
事件列表#
行业 | 场景 | 事件 | eventId | 规范 | 调用时机及用法 |
---|---|---|---|---|---|
通用 | 通用 | 注册 | register | 参数详情 | 调用时机:用户在官网或游戏中注册账号时调用 用法:PASS:正常 REJECT:打标签在交易时确认是否为材料小号,若确认则封号 |
通用 | 通用 | 登录 | login | 参数详情 | 调用时机:用户在密码登录或一键登录、默认登录时调用 用法:PASS:正常 REJECT:打标签在交易时确认是否为材料小号,若确认则封号 |
游戏 | 获利-任务 | 做任务 | gameTask | 参数详情 | 调用时机:用户在包括通过关卡、战斗、完成任务等获取奖励时进行调用 (客户可控频统计传入,如每10分钟有做任务的每个账号调用一次做任务事件,传输内容为:A账号在10分钟内获取的道具材料总量) 用法:打标签在交易时确认是否为材料小号,若确认则封号或酌情处置 |
游戏 | 获利-倒卖资源 | 下虚拟订单 | virtualOrder | 参数详情 | 调用时机:买家在交易所点击购买按钮确认支付时调用,其中tokenId为买家ID; 用户在购买官方商城商品充值时调用 用法:PASS:通过 REJECT:打标签:材料号:封号或酌情处置; 材料号/游戏币号:根据神兵值、历史充值金额等业务数据酌情处置 |
事件详细API#
注册事件 #
参数名称 | 类型 | 参数说明 | 是否必传 | 规范 |
---|---|---|---|---|
基础参数 | 需要满足基础参数的配置要求 | |||
type | string | 注册方式: 包括手机号码一键注册、手机号验证码注册、第三方授权、用户名密码注册 | 必传参数 | 可选值:phoneOnePass :手机号一键注册、手机号验证码注册signupPlatform 、第三方授权userPassword 用户名密码注册 |
hashPassword | string | 加密后的用户密码 | 强烈建议 | 可选择任意一种加密方式进行加密,但必须确保同一密码加密后是唯一的且一致的。 |
isPhoneExist | int | 该手机号是否已经被注册 | 强烈建议 | 可选值:0 ,1 若注册方式为手机号注册,且该手机号已经被注册过,则传入1 ,否则传入0 . |
signupPlatform | string | 第三方注册平台,如果本平台直接注册,可以不传 | 建议 | 可选值:qq、weibo、weixin、alipay、taobao、facebook、twitter |
string | 注册使用邮箱 | 建议 | ||
sex | string | 用户性别,没有则不传 | 建议 | 可选值:male ,female |
isSignupPlatformPhone | int | 该手机号是否是第三方授权平台手机号 | 建议 | 可选值:0 ,1 若手机号为第三方授权平台绑定的手机号,则传入1 ,否则传入0 . |
登录事件 #
参数名称 | 类型 | 参数说明 | 是否必传 | 规范 |
---|---|---|---|---|
基础参数 | 需要满足基础参数的配置要求 | |||
extra | json | 额外参数,需客户统计数据传入 | 建议 | extra中需传入字段: 异常值:若存在统计字段无法计算或属性字段获取不到,请传入int类型,-1 1、tokenType:账号属性标签,int 2、pvpLevel:娱乐战力值等级,int,可选值 3、equipscore:神兵战力值等级,int,可选值 4、roleRegisterTs:角色注册时间戳,13位,毫秒 5、param1:用户交易属性,int; 5、param2:用户账号定义,int; 如:data.extra:{ "tokenType":1, ”pvpLevel":0, "equipscore":1, "roleRegisterTs":1670123456789, "param1":1, "param2":1, } 枚举值说明详见 附录 |
type | string | 登录方式,包括:本机号码一键登录、手机号密码登录、手机号验证码登录、用户名密码登录、生物识别(指纹、人脸、声音锁)登录 | 必传参数 | 可选值: fastLogin :快速登录phoneOneLogin :本机号码一键登录phonePassword :手机号密码登录phoneMessage :手机号验证码登录signupPlatform :第三方授权登录userPassword :用户名密码登录biometric :生物识别 |
hashPassword | string | 加密后的用户密码 | 强烈建议 | 可选择任意一种加密方式进行加密,但必须确保同一密码加密后是唯一的且一致的。 |
valid | int | 用户名密码验证结果 | 建议 | 可选值:1 :成功0 :失败 |
gameZone | string | 游戏区服 | 强烈建议 | 当前子账号所属的区服 |
subTokenId | string | 账号登录的当前子账号,角色的roleId | 强烈建议 | 某些特殊的场景主账号有多个子账号(游戏场景不同区服),游戏场景必传 |
做任务 #
参数名称 | 类型 | 参数说明 | 是否必传 | 规范 |
---|---|---|---|---|
基础参数 | 需要满足基础参数的配置要求 | |||
extra | json | 额外参数 | 强烈建议 | extra中需传入字段: 异常值:若存在统计字段无法计算或属性字段获取不到,请传入int类型,-1 1、tokenType:账号属性标签,int 2、pvpLevel:娱乐战力值等级,int,可选值 3、equipscore:神兵战力值等级,int,可选值 4、roleRegisterTs:角色注册时间戳,13位,毫秒 如:data.extra:{ "tokenType":1, ”pvpLevel":0, "equipscore":1, "roleRegisterTs":1670123456789} 枚举值说明详见 附录 |
gameZone | string | 游戏区服 | 强烈建议 | 当前子账号所属的区服 |
subTokenId | string | 账号登录的当前子账号,角色的roleId | 强烈建议 | 某些特殊的场景主账号有多个子账号(游戏场景不同区服),游戏场景必传 |
taskId | string | 任务ID | 强烈建议 | 任务唯一标识 |
eventName | string | 任务名称 | 强烈建议 | 例如:PVP战斗、XXX任务、XXX关卡 |
taskAmount | int64 | 用户获取的资源数量,包括通过战斗、完成任务等获取的奖励 | 建议 | 一款游戏内资源数量的量纲必须为相同的,如金币或抽卡需要的资源等 |
rewardItems | json array | 该角色前一时间窗口中所获得的高价值道具材料详情 | 强烈建议 | 定义:高价值道具材料,即客户高度关注/风险度较高的材料,仅需将高价值道具材料的获取记录传入至做任务即可,其他非高价值的道具可不进行传入。 |
rewardItems内容详情
参数名称 | 类型 | 参数说明 | 是否必传 | 规范 |
---|---|---|---|---|
itemId | string | 道具材料SKU | 强烈建议 | 该角色前一时间窗口所获得的高价值道具材料SKU |
itemName | string | 道具材料名称 | 强烈建议 | 该角色前一时间窗口所获得的高价值道具材料名称 |
itemCount | string | 道具材料SKU | 强烈建议 | 该角色前一时间窗口所获得的高价值道具材料数量 |
taskId | string | 最后一次获得本道具的任务ID | 强烈建议 | 该角色前一时间窗口所获得的高价值道具材料SKU |
taskName | string | 最后一次获得本道具的任务名称 | 强烈建议 | 该角色前一时间窗口所获得的高价值道具材料SKU |
timestamp | string | 最后一次获得本道具的最后一次时间戳 | 强烈建议 | 该角色前一时间窗口所获得的高价值道具材料SKU |
下虚拟订单 #
参数名称 | 类型 | 参数说明 | 是否必传 | 规范 |
---|---|---|---|---|
基础参数 | 需要满足基础参数的配置要求 | |||
extra | json | 额外参数,需客户统计数据传入 | 建议 | extra中需传入字段: 异常值:若存在统计字段无法计算或属性字段获取不到,请传入int类型,-1 1、 sellTokenIdGameZone:string,卖家区服id 2、 tokenIdPurchaseNum:int,买家购买次数(近30天) 3、tokenIdPurchaseAboveAvg :int,买家购买次数是否大于平均数(近30天);0:不大于,1:大于 4、 tokenIdSellNum:int,买家寄售成功次数(近30天) 5、 tokenIdSellAboveAvg:int,买家寄售成功次数是否大于平均数(近30天);0:不大于,1:大于 6、 tokenIdRechargeLevel:int,买家累计充值分档 0-15(近30天) 7、 tokenIdSellAboveAvg_amt:int,买家寄售成功总金额是否大于平均寄售金额(近30天);0:不大于,1:大于 8、 tokenIdPurchaseAboveAvg_amt:int,买家购买总金额是否大于平均购买金额(近30天);0:不大于,1:大于 9、 TokenIdSellRechargeRatio:float,买家累计寄售成功获得的游戏币与游戏充值的游戏币的比值(近30天) 10、 tokenIdBuyUseRatio:float,买家累计购买道具消耗的游戏币与游戏内总消耗的游戏币的比值(近30天) 11、 sellTokenIdPurchaseNum:int,卖家购买次数(近30天) 12、 sellTokenIdPurchaseAboveAvg:int,卖家购买次数是否大于平均数(近30天);0:不大于,1:大于 13、 sellTokenIdSellNum:int,卖家寄售成功次数(近30天) 14、 sellTokenIdSellAboveAvg:int,卖家寄售成功次数是否大于平均数(近30天);0:不大于,1:大于 15、 sellTokenIdRechargeLevel:int,卖家累计充值分档 0-15(近30天) 16、 sellTokenIdSellAboveAvg_amt:int,卖家寄售成功总金额是否大于平均寄售金额(近30天);0:不大于,1:大于 17、 sellTokenIdPurchaseAboveAvg_amt:int,卖家购买成功总金额是否大于平均购买金额(近30天);0:不大于,1:大于 18、 sellTokenIdSellRechargeRatio:float,卖家累计寄售获得的游戏币与游戏充值的游戏币的比值(近30天) 19、 sellTokenIdBuyUseRatio:float,卖家累计购买道具消耗的游戏币与游戏总内消耗的游戏币的比值(近30天) |
gameZone | string | 游戏区服 | 强烈建议 | 当前子账号所属的区服 |
subTokenId | string | 账号的子账号 | 强烈建议 | 某些特殊的场景主账号有多个子账号(游戏场景不同区服) |
product | string | 虚拟商品名称 | 必传参数 | 例如:XXX道具 |
productId | string | 商品ID,SPU 标准化产品单元 | 强烈建议 | |
productCount | int | 商品数量 | 强烈建议 | 该笔交易中所包含的商品数量 |
productPrice | float | 商品价格 | 强烈建议 | 该笔交易中商品单价 |
productPriceMarketRatio | float | 商品价格/市场均价 | 强烈建议 | 若商品单价-productPrice因数据安全的问题,无法传输,建议采用该字段 |
productPriceSuggestRatio | float | 商品价格/标注价格 | 强烈建议 | 若商品单价-productPrice因数据安全的问题,无法传输,建议采用该字段 |
orderId | string | 订单ID | 强烈建议 | 该商品订单唯一标识 |
price | float64 | 下单总金额 | 强烈建议 | 统一量纲,例如游戏币总金额 |
sellTokenId | string | 卖家账号 | 强烈建议 | 该ID为用户的唯一标识,且与其它数美接口的tokenId保持一致 |
isFixedBuyer | int | 指定买家交易 | 强烈建议 | 该订单是否是指定交易,枚举值: 0:非指定买家交易 1:指定买家的交易 |
orderSource | string | 订单来源的枚举值,分为两类: 1、用户购买官方的虚拟商品/充值; 2、用户间的虚拟商品交易,如游戏道具、NFT藏品等 | 建议 | 枚举值: mall: 订单来自官方商城,用来记录用户平台商城购买虚拟商品或充值; exchange: 订单来自玩家交易所,用来记录用户间的虚拟商品交易 |
示例:#
请求示例:#
同步返回示例:#
加密传输#
在某些场景下,为保障数据安全,我们需要对请求体进行加密处理后再进行传输。若需开通加密传输方式,请联系数美科技客服人员。本节将详细介绍如何实现这一过程,重点聚焦于使用SM4国密算法进行加密的实践方法。
#
支持的加密方式目前系统支持的加密传输方式主要为:
- SM4国密算法:适用于对安全性有较高要求的场景,符合国家密码管理局的相关标准。
#
配置与准备- 密钥管理:确保加密前,已根据规定配置好加密所需的密钥及组织唯一标识。这些密钥信息由系统管理员提供。
- 服务端配置:加密传输功能需预先在服务器端设置并上线。包括了密钥配置、组织唯一标识。
#
加密传输参数说明当决定采用加密传输时,请求中需包含特定参数以指示加密方式及加密内容,具体如下:
参数名称 | 类型 | 参数说明 | 是否必传 | 规范 |
---|---|---|---|---|
encryptType | string | 指定使用的加密方式。 | 加密传输时必须提供;非加密传输可忽略。 | 固定值 SM4 表示使用SM4国密算法进行加密。 |
encryptData | string | 经过加密处理后的数据字符串。 | 与 encryptType 相关联,加密传输时必填;否则无需提供。 | 使用指定的加密算法(如SM4)对原始请求数据进行加密后得到的结果。 |
#
示例请求体结构一个采用SM4加密的数据传输请求实例,其请求体可能如下所示(仅展示加密相关参数):
注意: 在SM4加密的数据传输请求中,请求体要求加密内容为JSON格式字符串,例如:{\"field1\":\"敏感数据1\",\"field2\":\"敏感数据2\",\"field3\":\"敏感数据3\"}
,确保信息安全加密处理。
#
示例返回体结构通过遵循上述指南,您可以确保敏感数据在传输过程中得到有效的保护,满足组织的安全合规要求。
附录#
枚举值说明#
tokenType枚举值#
tokenType枚举值 | 含义 |
---|---|
0 | 仅登录用户 |
1 | 关卡用户 |
2 | 多玩法用户 |
3 | 竞技用户 |
4 | 潜在战场用户 |
5 | 战场用户 |
6 | 未定义用户 |
pvpLevel枚举值#
tokenType枚举值 | 含义 |
---|---|
0 | 无娱乐战力用户 |
1 | 无娱乐战力用户 |
2 | 低娱乐战力用户 |
3 | 低娱乐战力用户 |
4 | 低娱乐战力用户 |
5 | 低娱乐战力用户 |
6 | 中娱乐战力用户 |
7 | 中娱乐战力用户 |
8 | 中娱乐战力用户 |
9 | 普通娱乐战力用户 |
10 | 普通娱乐战力用户 |
11 | 普通娱乐战力用户 |
>=12 | 高娱乐战力用户 |
equipScore枚举值#
equipScore枚举值 | 含义 |
---|---|
0 | 入门神兵 |
1 | 入门神兵 |
2 | 基础神兵 |
3 | 基础神兵 |
4 | 基础神兵 |
5 | 潜在提升神兵 |
6 | 待提升神兵 |
7 | 待提升神兵 |
8 | 待提升神兵 |
9 | 待提升神兵 |
10 | 进阶神兵 |
11 | 进阶神兵 |
12 | 进阶神兵 |
>=13 | 正常神兵 |
|
param1枚举值#
param1枚举值 | 含义 |
---|---|
0 | 潜在交易用户 |
1 | 非交易用户 |
param2枚举值#
param2枚举值 | 含义 |
---|---|
0 | 普通账号 |
1 | 普通账号 |
2 | 普通账号 |
>=3 | 白名单账号 |