如对接入流程存在疑问,参见快速开始
行为验证 iOS SDK 集成⽂文档
1. 获取应⽤ APPID
1、访问云⽚官⽹进行注册账号,联系客服或者销售申请开通行为验证服务。
2、成功开通服务后,进入管理控制台,在左侧导航栏中会显示⾏为验证,点击行为验证、在出现的下拉列表中选择应用管理,进⼊行为验证的应用管理页面。
3、选择新增应用,⽤户填写应用名称并选择验证方式(验证方式的详细介绍,参见应用介绍),系统会为该应用分配APPID、Secret Id和Secret Key;
一般一个应用对应一个应用场景。
2. 打开项⽬工程
启动 Xcode, 打开您之前创建的 Xcode 项⽬工程
3. 配置行为验证 SDK
3.1 Xcode 集成方式
我们提供一个 SDK 开发工具包,包含了 iOS SDK 的全部所需资源。
3.2.1 解压缩后的文件目录结构
- Demo 工程: SDK 演示 Demo,能更好的展示云⽚行为验证 SDK 的功能点。
- 资源⽂件:
1、包含集成 SDK 所需的静态 framework 库和静态资源包。
2、注意事项:
(1) 在 App 内投放广告,获取 IDFA 可通过苹果审核。
(2) App 内无广告,但由于先前投放的特定广告,可参考如下勾选,通过苹果审核。勾选如图:
注意: 为了获取精准的行为验证结果,需添加 AdSupport.framework 库⽀持
3.2.2 资源包内容图示
文件 | 说明 |
接⼊文档/iOS SDK 接⼊文档.pdf | iOS SDK 接⼊文档 |
接⼊文档/快速开始.pdf | 接⼊行为验证的整体流程文档 |
接⼊文档/后端⼆次验证⽂档.pdf | 后端二次验证文档 |
资源文件/YPCaptchaSDK.framework | SDK Framework 文件 |
资源文件/YPResources.bundle | SDK 静态资源包 |
Demo工程/YPVerifyDemo/ | demo ⼯程 |
注意: SDK 同时支持 simulator 和 device,⽀持 iOS 版本为 8.0 及以上。
3.2.3 添加行为验证
右击添加文件,导⼊资源文件目录下的文件。
3.2.4 添加依赖库 (必须,如下图)
添加系统库⽀持:
- AdSupport.framework
3.4.5 设置 Other Linker Flags
找到主工程的 target -> Build Setting -> Linking -> Other Linker Flags, 将其设置为 -ObjC (如图
所示):
4. SDK API 说明
4.1 初始化启动接⼝
接⼝描述:
使用行为验证功能以前,需要先启动 SDK,该接⼝用于在 App 运⾏时启动 SDK。
接⼝定义:
/** 初始化⾏行行为验证 SDK @param captchaId 后台分配的 APPID */ + (void)startWithCaptchaId:(NSString *)captchaId;
接⼝说明:
在 AppDelegate didFinishLaunchingWithOptions
方法中: 通过平台分配的 APPID
启动
SDK。
参数 | 参数说明 |
captchaId | 创建应⽤时平台分配的 APPID |
接口示例:
@implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [YPCaptchaSDK startWithCaptchaId:kYPCaptchaId]; return YES; }
4.2 行为验证
接口描述:
展示行为验证验证码界面,并回调用户的操作结果。
接口定义:
/** 行为验证 @param configModel 配置选项 @param loaded 动画验证加载完成回调 @param success 验证成功回调 @param fail 验证失败回调 */ + (void)verfiy:(YPConfigModel *)configModel onLoaded:(YPCallback)loaded onSuccess:(YPCallbackWithDic)success onFail:(YPCallbackWithDic)fail;
接⼝示例:
@implementation AppDelegate - (IBAction)verify:(id)sender { YPConfigModel *model = [[YPConfigModel alloc] init]; [YPCaptchaSDK verfiy:model onLoaded:^{ } onSuccess:^(NSDictionary *_Nonnull info) { NSLog(@"on success info %@",info); } onFail:^(NSDictionary *_Nonnull info) { NSLog(@"on fail info %@",info); }]; }
4.3 配置行为验证
接⼝描述:
可以自定义行为验证接口的过期时间和界面。
接⼝定义:
@interface YPConfigModel : NSObject /** 请求验证码过期时限。单位秒,默认 30 */ @property (nonatomic, assign) NSInteger expired; /** 支持语言,默认简体中⽂。zh-cn(简体中文)、en(英文) */ @property (nonatomic, copy) NSString *lang; /** 验证码语言包。当设置 langPack 后 lang 设置会⾃自动失效。 */ @property (nonatomic, strong) YPLangPackModel *langPack; /** 验证码位置,默认居中,默认宽度为:屏幕宽度 * 4/5,宽度最⼩小为 230。默认⾼高度为:宽度/2 + 110。 */ @property (nonatomic, assign) CGRect frame; /** 视图透明度。默认 0.3 */ @property (nonatomic, assign) float alpha; /** 视图背景颜⾊ */ @property (nonatomic, strong) UIColor *color; /** 是否显示加载指示器器。默认显示 */ @property (nonatomic, assign) BOOL showLoadingView; @end
接口示例:
YPConfigModel *model = [[YPConfigModel alloc] init]; model.expired = 30; model.lang = @"zh-cn"; float width = kDemoScreenWidth * 4 / 5; model.frame = CGRectMake((kDemoScreenWidth - width) / 2, kDemoScreenHeight / 2 - width / 2, width, width / 2 + 110); model.showLoadingView = YES; model.alpha = 0.3; [YPCaptchaSDK verfiy:model onLoaded:^{ } onSuccess:^(NSDictionary *_Nonnull info) { NSLog(@"on success info %@",info); } onFail:^(NSDictionary *_Nonnull info) { NSLog(@"on fail info %@",info); }];
4.4 配置验证码语言包
接口描述:
验证码语⾔包。当设置 langPack 后 lang 设置会⾃动失效。
接口定义:
@interface YPLangPackModel : NSObject @property (nonatomic, copy) NSString *YPcaptcha_02; // 默认:请按顺序点击: @property (nonatomic, copy) NSString *YPcaptcha_03; // 默认:向右拖动滑块填充拼图 @property (nonatomic, copy) NSString *YPcaptcha_04; // 默认:验证失败,请重试 @end
接口示例:
YPConfigModel *model = [[YPConfigModel alloc] init]; YPLangPackModel *langPack = [YPLangPackModel new]; langPack.YPcaptcha_02 = @"⾃自定义请按顺序点击:"; langPack.YPcaptcha_03 = @"⾃自定义向右拖动滑块填充拼图"; langPack.YPcaptcha_04 = @"⾃自定义验证失败,请重试"; model.langPack = langPack; [YPCaptchaSDK verfiy:model onLoaded:^{ } onSuccess:^(NSDictionary *_Nonnull info) { NSLog(@"on success info %@",info); } onFail:^(NSDictionary *_Nonnull info) { NSLog(@"on fail info %@",info); }];
5. 验证码接口响应码释义
响应码 | 错误信息 | 具体描述 |
0 | verify success | 验证成功 |
1 | bad request | 验证请求数据缺失或格式有误 |
2 | verify fail | 验证不通过 |
400 | param_invalid | 请求参数错误,检查 i k 参数 |
400 | captcha_id_invalid | APPID 不存在 |
429 | too many requests | 请求过于频繁,请稍后再试 |
500 | server_error | 服务异常 |
10006 | network error | 网络请求异常 |
10007 | captchaId is null | APPID 为空 |
10008 | cancel verify | 取消验证 |
10009 | verify expired | 验证超时 |
10010 | unknown error | 未知异常 |