进行反欺诈接入前请先完成SDK的接入与初始化
如果无需使用一键认证功能,请联系文档中心右侧“技术咨询”获取精简包
反欺诈主要用于识别设备风险等级
提供两种接入方式,请业务方根据自身特点进行选择。
客户端主动触发模式
客户端在注册、登录时分别调用注册保护、登录保护接口。此种方式适合防范电商刷单、秒杀活动的防范。
服务端校验模式
客户端只需完成初始化操作,获取gyuid(设备标识),服务端根据业务需要,定期根据gyuid获取设备风险等级。适用于新闻资讯类APP
方法 | 功能说明 |
---|---|
checkRegister | 注册保护接口,在注册时调用(客户端主动触发模式) |
checkLogin | 登录保护接口,在登录时调用(客户端主动触发模式) |
/**
注册保护接口
@param checkModel 校验模型
@param callback 通用接口回调
*/
+ (void)checkRegister:(GyCheckModel *)checkModel withCallback:(GyVerifyCallback)callback;
开发者通过类 GyCheckModel
根据以下参数构造 GyCheckModel
对象,通过调用API + (void)checkRegister:(GyCheckModel *)checkModel withCallback:(GyVerifyCallback)callback;
,注册风险等级在 GyVerifyCallback
回调中。
参数名称 | 是否必填 | 类型 | 描述 |
---|---|---|---|
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地址 |
idfa | 可选 | String | 设备的idfa |
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:验证错误 |
回调参数 | 参数说明 |
---|---|
GyVerifyCallback |
接口返回信息 |
参数名称 | 类型 | 描述 |
---|---|---|
level | String | 分为0-4五个等级。 0为安全用户。1和2为怀疑用户。3和4为风险用户 |
riskType | Array | 1:帐号风险,2:网络风险,3:设备风险,4:行为风险 |
GyCheckModel *model = [[GyCheckModel alloc]init];
model.account = @"69B64959969AF7DB11C5ED182495FB2E";
model.email = @"69B64959969AF7DB11C5ED182495FB2E";
model.pn = @"6E3652F544C1352516CF1997039F0660";
model.pwd = @"E10ADC3949BA59ABBE56E057F20F883E";
model.nickName = @"nickName";
model.registerTime = @"1521440310";
model.runEnv = @"4";
model.moveCount = @"1";
model.clickCount = @"3";
model.keyCount = @"10";
model.operatingTime = @"60";
model.ip = @"192.168.1.3";
model.appVer = @"1.1.0";
model.mac = @"";
model.idfa = @"1E2DFA89-496A-47FD-9941-DF1FC4E6484A";
model.referrer = @"https://www.getui.com";
model.xForwardFor = @"https://www.getui.com";
model.result = @"1";
model.reason = @"0";
[[CommonToastHUD sharedInstance] showActivityView:@"正在发送请求"];
[GeYanSdk checkRegister:model withCallback:^(NSDictionary *verifyDictionary) {
[[CommonToastHUD sharedInstance] hideActivityView];
NSInteger resultCode = [verifyDictionary[@"result"]integerValue];
if (resultCode == 20000) {
[[CommonToastHUD sharedInstance]showTips:verifyDictionary[@"msg"]];
}else{
[[CommonToastHUD sharedInstance]showTips:[NSString stringWithFormat:@"Fail with code : %ld,msg : %@",resultCode,verifyDictionary[@"msg"]]];
} }];
{
data = {
data = {
// 风险等级
level = 2;
// 风险类型
riskType = (
3,
2
);
// 服务端查询反欺诈结果凭证
token = "GY-AF-20180614-r6Dwt1do4t7UAX2nIccZV";
};
msg = "\U6210\U529f";
result = 20000;
};
errno = 0;
}
/**
登录保护接口
@param checkModel 校验模型
@param callback 通用接口回调
*/
+ (void)checkLogin:(GyCheckModel *)checkModel withCallback:(GyVerifyCallback)callback;
开发者通过类 GyCheckModel
根据以下参数构造 GyCheckModel
对象,通过调用API + (void)checkLogin:(GyCheckModel *)checkModel withCallback:(GyVerifyCallback)callback;
,注册风险等级在 GyVerifyCallback
回调中。
参数名称 | 是否 必填 |
类型 | 描述 |
---|---|---|---|
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地址 |
idfa | 可选 | String | 设备的idfa |
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:短信验证码登录 |
回调参数 | 参数说明 |
---|---|
GyVerifyCallback |
接口返回信息 |
参数名称 | 类型 | 描述 |
---|---|---|
level | String | 分为0-4五个等级。 0为安全用户。1和2为怀疑用户。3和4为风险用户 |
riskType | Array | 1:帐号风险,2:网络风险,3:设备风险,4:行为风险 |
GyCheckModel *model = [[GyCheckModel alloc]init];
model.account = @"69B64959969AF7DB11C5ED182495FB2E";
model.email = @"69B64959969AF7DB11C5ED182495FB2E";
model.pn = @"6E3652F544C1352516CF1997039F0660";
model.pwd = @"E10ADC3949BA59ABBE56E057F20F883E";
model.nickName = @"nickName";
model.registerTime = @"1521440310";
model.loginTime = @"1521440310";
model.runEnv = @"4";
model.moveCount = @"1";
model.clickCount = @"3";
model.keyCount = @"10";
model.operatingTime = @"60";
model.ip = @"192.168.1.3";
model.appVer = @"1.1.0";
model.mac = @"";
model.idfa = @"1E2DFA89-496A-47FD-9941-DF1FC4E6484A";
model.referrer = @"https://www.getui.com";
model.xForwardFor = @"https://www.getui.com";
model.result = @"1";
model.reason = @"0";
model.loginType = @"1";
[[CommonToastHUD sharedInstance] showActivityView:@"正在发送请求"];
[GeYanSdk checkLogin:model withCallback:^(NSDictionary *verifyDictionary) {
NSInteger resultCode = [verifyDictionary[@"result"]integerValue];
[[CommonToastHUD sharedInstance] hideActivityView];
if (resultCode == 20000) {
[[CommonToastHUD sharedInstance]showTips:verifyDictionary[@"msg"]];
}else{
[[CommonToastHUD sharedInstance]showTips:[NSString stringWithFormat:@"Fail with code : %ld,msg : %@",resultCode,verifyDictionary[@"msg"]]];
}
}];
{
data = {
data = {
// 风险等级
level = 2;
// 风险类型
riskType = (
3,
2
);
// 服务端查询反欺诈结果凭证
token = "GY-AF-20180614-r6Dwt1do4t7UAX2nIccZV";
};
msg = "\U6210\U529f";
result = 20000;
};
errno = 0;
}
请参考状态码汇总说明
以上文档对您是否有帮助?