iOS SDK API__API手册_数据风控-阿里云
获取数据风控wtoken
#import <SecurityGuardSDK/JAQ/SecurityVerification.h>
+(NSString*)doJAQVerfificationSync:(NSDictionary*)info
timeout:(NSInteger) timeout;
在需要使用数据风控的场景,如注册、登陆、活动页面,可以在用户点击“注册”、“登陆”等业务按钮时、业务逻辑处理前获得该token,服务端通过该token查询风险结果。函数不能再主线程执行,否则会抛出异常。
入参
Info: nil;
timeout: 接口超时时间,单位秒。只能传入1 <= timeout <= 22的整型,传入其他值,将使用默认超时时间(22秒);
返回
- wtoken:调用方得到此wtoken后,需要将此token传递到自己的server端,再由自己的server端将此token透传到聚安全server端,获得最后的风控校验结果。
- wtoken在后端风险识别使用 参考 API概览-业务风险防控API
错误诊断
接口不抛异常。当调用出错的时候,会在命令行中打印相应的错误日志,错误日志以SG ERROR开头:
错误码 | 值 | 含义 |
---|---|---|
SEC_ERROR_SECURITYBODY_INVALID_THREAD | 1401 | 参数不正确,请检查输入的参数 |
SEC_ERROR_SECURITYBODY_INVALID_THREAD | 1402 | 接口调用线程错误。请在非UI线程内调用此接口(因为本接口有耗时操作) |
SEC_ERROR_SECURITYBODY_NET_ERROR | 1403 | 网络超时或网络断开 |
SEC_ERROR_SECURITYBODY_SERVER_ERROR | 1404 | 数据风控服务端器错误,请确认应用是否有权限访问此接口 |
SEC_ERROR_SECURITYBODY_APPKEY_ERROR | 1405 | 加密文件yw_1222_0335.jpg格式或其内数据有问题。常见原因为用错图片(iOS与Android图片不通用)或者图片内没有存放对应的Top Appkey |
SEC_ERROR_SECURITYBODY_SIGNATURE_ERROR | 1406 | 加密文件yw_1222_0335.jpg格式或其内数据有问题。常见原因为用错图片(iOS与Android图片不通用)或者图片内没有存放对应的Top Appkey |
SEC_ERROR_SECURITYBODY_ENCRYPTION_ERROR | 1407 | 数据加密错误 |
SEC_ERROR_SECURITYBODY_TOP_ERROR | 1408 | TOP协议错误,请检查手机时间设置是否正常,加密图片yw_1222_0335.jpg使用是否正确 |
SEC_ERROR_SECURITYBODY_CONCURRENT | 1409 | 接口被并发调用错误;本接口不支持多线程同时调用 |
SEC_ERROR_SECURITYBODY_UNSUPPORTED | 1498 | 接口在这个版本的SDK中不支持 |
SEC_ERROR_SECURITYBODY_UNKNOWN_ERR | 1499 | 未知错误,请重试 |
验证类型定义
MSAuthDefines.h
/**
* 当前支持的验证类型:目前支持的类型有滑动验证,即将会有更多验证方式加入
*/
typedef enum : NSUInteger {
MSAuthTypeSlide
} MSAuthType;
启动验证(依赖业务风险防控结果启动)
import MSAuthVCFactory.h
@interface MSAuthVCFactory : NSObject
/**
* 获取验证VC的工厂方法
*
* @param language 需要展示的语言,如:zh_CN 简体中文, en 英文。nil为当前环境。如果语言包不存在显示英文
* @param type 验证类型。目前支持的类型有滑动验证,即将会有更多验证方式加入
* @param jsonData 数据风控服务器透传下发数据
* @param delegate 处理回调结果的代理
* @param lang 设置语言
* @return 返回一个实例VC
*/
+ (UIViewController *)vcWithAuthType:(MSAuthType)type
jsonData:(NSString *)jsonData
language:(NSString*)lang
Delegate:(id<MSAuthProtocol>)delegate;
通过函数可以呼出验证UI
jsonData和type为服务端通过业务风险防控获得的结果。 具体参考 API概览-业务风险防控API
pushViewController
UIViewController *vc = [MSAuthVCFactory simapleVerifyWithType:服务器回传的验证类型
language:@"zh_CN"
Delegate:self];
[self.navigationController pushViewController:vc animated:YES];
使用presentViewController,带navigationbar
UINavigationController *navigationController =
[[UINavigationController alloc] initWithRootViewController:vc];
//now present this navigation controller modally
[self presentViewController:navigationController
animated:YES
completion:^{
}];
启动验证(不依赖业务风险防控结果,直接启动验证)
/**
* 验证VC的工厂方法, 使用风险验证用户直接调用这个接口
* @param type 验证类型。目前支持的类型有滑动验证,即将会有更多验证方式加入
* @param language 需要展示的语言,如:zh_CN 简体中文, en 英文。nil为当前环境。如果语言包不存在显示英文
* @param delegate 处理回调结果的代理
* @return 返回一个实例VC
*/
+ (UIViewController *)simapleVerifyWithType:(MSAuthType)type
language:(NSString*)lang
Delegate:(id<MSAuthProtocol>)delegate;
启动验证两个接口:simapleVerifyWithType和vcWithAuthType区别
simapleVerifyWithType是直接启动验证码接口,功能为纯粹的验证。目前支持的验证类型为滑动。
vcWithAuthType会将之前步骤中调用的业务风险防控结果(jsonData和type)带入到验证中,在该结果中会建议使用的验证类型(即将支持语音、短信验证)。
验证结果回调
用户通过回调函数关闭controller,sdk内部不会关闭此控件。
typedef enum {
VERIFY_REUSLT_OK = 0,
VERIFY_REUSLT_FAIL = 1
}t_verify_reuslt
@protocol MSAuthProtocol <NSObject>
/**
* 验证结果的回调
*
* @param error 验证错误返回码, nil表示正确 非空为验证失败
* @param sessionId 聚安全服务器下发二次验证sessionid,
* 三方服务器利用token获得验证结果
*/
- (void)verifyDidFinishedWithResult:(t_verify_reuslt)code
Error:(NSError *)error
SessionId:(NSString *)sessionId;
@end
参数error对象 ErrorDomain详细定义:
值 | 含义 |
---|---|
AliAuthGeneric | 一般性错误来自网络异常 |
AliAuthServer | 网关通信错误 |
AliAuthServiceNc | 滑动业务错误 |
AliAuthService | 验证业务错误 |
业务风险防控与验证示例代码
Step 0: 风险采集和判断
进行登录,改密,找密,注册等涉及敏感场景时,需要调用风险采集获得wtoken。调用者需要把wtoken传到用户的服务端,服务端用wtoken请求业务风险防控API获得相应的风险结果。数据风控服务端会把风险结果以json形式返回。
#import <SecurityGuardSDK/JAQ/SecurityVerification.h>
获得风险采集信息,
NSString* wtoken = [SecurityVerification doJAQVerfificationSync:info
timeout:timeout];
如果wtoken返回为nil表示风险采集失败,如果风险采集失败建议认为验证失败,用户阻止其后操作。
返回的wtoken,需要到服务器端进行风险判断.具体调用参看 API概览-业务风险防控API
Step 1: 引入头文件
#import <MSAuthSDK/MSAuthSDK.h>
Step 2: 风险验证 viewcontroller
UIViewController *vc = [MSAuthVCFactory vcWithAuthType:服务器回传的验证类型
jsonData:@"来自风险识别后的返回值"
language:@"zh_CN"
Delegate:self];
[self.navigationController pushViewController:vc animated:YES];
Step 3: 实现delegate回调
@interface ViewController () <MSAuthProtocol>
...
#pragma mark - MSAuthProtocol methods
- (void)verifyDidFinishedWithError:(NSError *)error SessionId:(NSString *)sessionId {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
NSLog(@"验证失败 %@", error);
} else {
NSLog(@"验证通过 %@", sessionId);
}
//将sessionid传到经过app服务器做二次验证
});
}
Step 4: sessionid 验证
具体调用参看 API概览-验证码服务API
不依赖业务风险防控,直接使用验证码示例代码
Step 0: 引入头文件
#import <MSAuthSDK/MSAuthSDK.h>
Step 1: 调用工厂类生成所需二次验证 viewcontroller
UIViewController *vc = [MSAuthVCFactory simapleVerifyWithType:服务器回传的验证类型
language:@"zh_CN"
Delegate:self];
[self.navigationController pushViewController:vc animated:YES];
Step 2: 实现delegate回调
@interface ViewController () <MSAuthProtocol>
...
#pragma mark - MSAuthProtocol methods
- (void)verifyDidFinishedWithError:(NSError *)error SessionId:(NSString *)sessionId {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
NSLog(@"验证失败 %@", error);
} else {
NSLog(@"验证通过 %@", sessionId);
}
[self.navigationController popViewControllerAnimated:YES];
//将sessionid传到经过app服务器做二次验证
});
}
Step 3:sessionid 验证
具体调用参看 API概览-验证码服务API
错误处理
1.如看到以下报错:
App Transport Security has blocked a cleartext HTTP (https://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.
SG ERROR: 1210
你需要在info.plist中设置
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
最后更新:2016-11-23 16:04:21
上一篇:
滑动验证插件__使用手册_数据风控-阿里云
下一篇:
Android SDK API__API手册_数据风控-阿里云
iOS SDK手册__SDK手册_HTTPDNS-阿里云
请求结构__调用方式_API使用手册_消息服务-阿里云
Web控制台介绍__使用指南_DataHub实时数据通道_大数据计算服务-阿里云
事务__常用指标_使用手册_性能测试-阿里云
超大消息传输__最佳实践_消息服务-阿里云
篮球动作视频识别__阿里云ET介绍-阿里云
DRDS数据源配置__数据源配置_数据同步手册_用户操作指南_大数据开发套件-阿里云
简单下载示例__SDK示例_批量数据通道_大数据计算服务-阿里云
添加域名分组__域名分组接口_API文档_云解析-阿里云
创建事件__数据库开发_用户指南(RDBMS)_数据管理-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云