本文档仅适用于3.0以前的gysdk,3.0以后的版本已经删除了反欺诈相关的功能接口。
进行反欺诈接入前请先完成SDK的接入与初始化
反欺诈主要用于识别设备风险等级
提供两种接入方式,请业务方根据自身特点进行选择。
客户端主动触发模式
客户端在注册、登录时分别调用注册保护、登录保护接口。此种方式适合防范电商刷单、秒杀活动的防范。
服务端校验模式
客户端只需完成初始化操作,获取gyuid上传到服务端,服务端根据业务需要,定期根据gyuid获取设备风险等级。适用于新闻资讯类APP。(gyuid为设备标识,可在初始化时获取,详见初始化文档)

API 类名: com.getui.gysdk.GYManager
| 方法 | 功能说明 | 
|---|---|
| checkRegister | 注册保护接口,在注册时调用(客户端主动触发模式) | 
| checkLogin | 登录保护接口,在登录时调用(客户端主动触发模式) | 
checkRegister
开发者通过类 CheckBuilder.Builder 根据以下参数构造 CheckBuilder 对象,通过调用API public void checkRegister(CheckBuilder builder, GyCallBack callBack),注册风险等级在 GyCallBack 回调中。
| 参数名称 | 是否 必填  | 
类型 | 描述 | 
|---|---|---|---|
| account | 必选 | String | 用户唯一标识,如果是手机号or邮箱,请提供 MD5 值 | 
| 可选 | String | 用户的邮箱 | |
| pn | 可选 | String | 用户的手机号MD5值 | 
| 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'
}
checkLogin
开发者通过类 CheckBuilder.Builder 根据以下参数构造 CheckBuilder 对象,通过调用API public void checkLogin(CheckBuilder builder, GyCallBack callBack),注册风险等级在 GyCallBack 回调中。
| 参数名称 | 是否 必填  | 
类型 | 描述 | 
|---|---|---|---|
| account | 必选 | String | 用户唯一标识,如果是手机号or邮箱,请提供 MD5 值 | 
| 可选 | String | 用户的邮箱 | |
| pn | 可选 | String | 用户的手机号MD5值 | 
| 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'
}
public interface GyCallBack {
    /**
     * description:请求成功.
     */     
    void onSuccess(GYResponse response);
    /**
     * description:请求失败.
     */
    void onFailed(GYResponse response);
}
| 属性 | 类型 | 属性说明 | 
|---|---|---|
| success | boolean | 验证是否成功 | 
| code | int | 状态码 | 
| msg | String | 状态描述信息 | 
| gyuid | String | 个验用户唯一标识 | 
| reqId | String | 调用验证接口和短信验证接口时返回的请求唯一id,错误不返回 | 
请参考状态码汇总说明
以上文档对您是否有帮助?