反欺诈

反欺诈

前言

进行反欺诈接入前请先完成SDK的接入与初始化

功能说明

反欺诈主要用于识别设备风险等级

提供两种接入方式,请业务方根据自身特点进行选择。

  • 客户端主动触发模式

    客户端在注册、登录时分别调用注册保护、登录保护接口。此种方式适合防范电商刷单、秒杀活动的防范。

  • 服务端校验模式

    客户端只需完成初始化操作,获取gyuid上传到服务端,服务端根据业务需要,定期根据gyuid获取设备风险等级。适用于新闻资讯类APP。(gyuid为设备标识,可在初始化时获取,详见初始化文档)

整体流程

  • 注册保护、登录保护整体流程

接口列表

API 类名: com.getui.gysdk.GYManager

方法 功能说明
checkRegister 注册保护接口,在注册时调用(客户端主动触发模式)
checkLogin 登录保护接口,在登录时调用(客户端主动触发模式)

1、注册保护

接口名称

checkRegister

输入参数

开发者通过类 CheckBuilder.Builder 根据以下参数构造 CheckBuilder 对象,通过调用API public void checkRegister(CheckBuilder builder, GyCallBack callBack),注册风险等级在 GyCallBack 回调中。

参数名称 是否
必填
类型 描述
account 必选 String 用户唯一标识,如果是手机号or邮箱,请提供 MD5 值
email 可选 String 用户的邮箱
pn 可选 String 用户的手机号
pwd 可选 String 用户的密码
nickName 可选 String 昵称
registerTime 可选 String 注册时间戳,单位秒
runEnv 可选 String 用户客户端运行环境,取值:
2: WEB,3: WAP,4: IOS_PHONE,5: ANDROID_PHONE,
6: WINDOWS_PHONE,7: IOS_TABLET,8: ANDROID_TABLET,
9: WINDOWS_TABLET,10: WINDOWS_DESKTOP,11: MAC_DESKTOP,
12: LINUX_DESKTOP
moveCount 可选 String 用户操作过程中的move类事件的次数,包括:mouseMove、touchMove等等
clickCount 可选 String 用户操作过程中鼠标点击次数,包括:click、mousedown、touchStart等事件
keyCount 可选 String 用户操作过程中键盘的摁键次数
operatingTime 可选 String 注册操作耗时,单位秒
ip 可选 String 注册来源的外网IP
appVer 可选 String APP版本
mac 可选 String 设备mac地址
imei 可选 String 设备的IMEI
imsi 可选 String 设备的IMSI
referrer 可选 String 用户http请求的Referrer头
userAgent 可选 String 用户http请求的UserAgent
xForwardFor 可选 String 用户http请求的X-Forwarded-For头信息,或其他记录代理信息的http头信息
result 可选 String 注册结果 0:失败1:成功
reason 可选 String 失败原因 0:其他 1:参数错误 2:帐号冲突 3:验证错误

输出参数

GYResponse 参数说明:

参数名称 类型 描述
success boolean 接口成功与否
code int 状态码
msg String JSON数据 toString,示例:{"riskType":["3"],"level":"4","token":"GY-AF-20180918-yvQZCpNWFc8ma7rm1Qe3n2"}

msg中包含信息说明:

参数名称 类型 描述
level String 分为0-4五个等级。0为安全用户。1和2为怀疑用户。3和4为风险用户
riskType Array 1:账号风险 2:行为风险 3:环境风险
token String 服务端二次校验凭证

示例代码

CheckBuilder.Builder builder = new CheckBuilder.Builder("Appid");
builder.setImei("IMEI");
builder.setAccount("Account");

GYManager.getInstance().checkRegister(builder.build(), new GyCallBack() {
   @Override
   public void onSuccess(GYResponse response) {
       Log.d(TAG, "onSuccess:" + response.toString());
   }

   @Override
   public void onFailed(GYResponse response) {
       Log.d(TAG, "onFailed:" + response.toString());
   }
});

返回示例

{
 gyuid='null',
 reqId='null', 
 success=true, 
 code=20000, 
 msg='{
    "riskType"[],
    "level":"0",
    "ip":"192.168.5.17",
    "ipType":"",
    "token":"GY-AF-20180918-3K2VLXkLvk5nl7JsJxHZQ6"
    }', 
 validate='null'
}


2、登录保护

接口名称

checkLogin

输入参数

开发者通过类 CheckBuilder.Builder 根据以下参数构造 CheckBuilder 对象,通过调用API public void checkLogin(CheckBuilder builder, GyCallBack callBack),注册风险等级在 GyCallBack 回调中。

参数名称 是否
必填
类型 描述
account 必选 String 用户唯一标识,如果是手机号or邮箱,请提供 MD5 值
email 可选 String 用户的邮箱
pn 可选 String 用户的手机号
pwd 可选 String 用户的密码
nickName 可选 String 昵称
registerTime 可选 String 注册时间戳,单位秒
loginTime 可选 String 登录时间戳,单位秒
runEnv 可选 String 用户客户端运行环境,取值:
2: WEB,3: WAP,4: IOS_PHONE,5: ANDROID_PHONE,
6: WINDOWS_PHONE,7: IOS_TABLET,8: ANDROID_TABLET,
9: WINDOWS_TABLET,10: WINDOWS_DESKTOP,11: MAC_DESKTOP,
12: LINUX_DESKTOP
moveCount 可选 String 用户操作过程中的move类事件的次数,包括:mouseMove、touchMove等等
clickCount 可选 String 用户操作过程中鼠标点击次数,包括:click、mousedown、touchStart等事件
keyCount 可选 String 用户操作过程中键盘的摁键次数
operatingTime 可选 String 注册操作耗时,单位秒
ip 可选 String 注册来源的外网IP
appVer 可选 String APP版本
mac 可选 String 设备mac地址
imei 可选 String 设备的IMEI
imsi 可选 String 设备的IMSI
referrer 可选 String 用户http请求的Referrer头
userAgent 可选 String 用户http请求的UserAgent
xForwardFor 可选 String 用户http请求的X-Forwarded-For头信息,或其他记录代理信息的http头信息
result 可选 String 注册结果 0:失败1:成功
reason 可选 String 失败原因 0:其他 1:参数错误 2:帐号冲突 3:验证错误
loginType 可选 String 登录方式 0:账号密码登录 1:扫码登录 2:短信验证码登录 3:其他

输出参数

GYResponse 参数说明:

参数名称 类型 描述
success boolean 接口成功与否
code int 状态码
msg String JSON数据 toString,示例:{"riskType":["3"],"level":"4","token":"GY-AF-20180918-yvQZCpNWFc8ma7rm1Qe3n2"}

msg中包含信息说明:

参数名称 类型 描述
level String 分为0-4五个等级。 0为安全用户。1和2为怀疑用户。3和4为风险用户
riskType Array 1:账号风险 2:行为风险 3:环境风险
token String 服务端二次校验凭证

示例代码

CheckBuilder.Builder builder = new CheckBuilder.Builder("Appid");
builder.setImei("IMEI");
builder.setAccount("Account");

GYManager.getInstance().checkLogin(builder.build(), new GyCallBack() {
    @Override
    public void onSuccess(GYResponse response) {
        Log.d(TAG, "onSuccess:" + response.toString());
    }

    @Override
    public void onFailed(GYResponse response) {
        Log.d(TAG, "onFailed:" + response.toString());
    }
});

返回示例

{
 gyuid='null',
 reqId='null', 
 success=true, 
 code=20000, 
 msg='{
    "riskType"[],
    "level":"0",
    "token":"GY-AF-20180918-3K2VLXkLvk5nl7JsJxHZQ6"
    }', 
 validate='null'
}


3、创建GyCallBack 接收回调

public interface GyCallBack {

    /**
     * description:请求成功.
     */     
    void onSuccess(GYResponse response);

    /**
     * description:请求失败.
     */
    void onFailed(GYResponse response);

}

  • 类 GYResponse 属性详细说明:
属性 类型 属性说明
success boolean 验证是否成功
code int 状态码
msg String 状态描述信息
gyuid String 个验用户唯一标识
reqId String 调用验证接口和短信验证接口时返回的请求唯一id,错误不返回

状态码

请参考状态码汇总说明

文档中心搜索