如对接入流程存在疑问,参见快速开始


行为验证 iOS SDK 集成⽂文档


1. 获取应⽤ APPID


1、访问云⽚官⽹进行注册账号,联系客服或者销售申请开通行为验证服务。


2、成功开通服务后,进入管理控制台,在左侧导航栏中会显示⾏为验证,点击行为验证、在出现的下拉列表中选择应用管理,进⼊行为验证的应用管理页面。


3、选择新增应用,⽤户填写应用名称并选择验证方式(验证方式的详细介绍,参见应用介绍),系统会为该应用分配APPIDSecret IdSecret Key;
一般一个应用对应一个应用场景。


2. 打开项⽬工程


启动 Xcode, 打开您之前创建的 Xcode 项⽬工程


3. 配置行为验证 SDK


SDK 下载地址


3.1 Xcode 集成方式


我们提供一个 SDK 开发工具包,包含了 iOS SDK 的全部所需资源。


3.2.1 解压缩后的文件目录结构


  • Demo 工程: SDK 演示 Demo,能更好的展示云⽚行为验证 SDK 的功能点。
  • 资源⽂件:
    1、包含集成 SDK 所需的静态 framework 库和静态资源包。
    2、注意事项:
    (1) 在 App 内投放广告,获取 IDFA 可通过苹果审核。
    (2) App 内无广告,但由于先前投放的特定⼴广告,可参考如下勾选,通过苹果审核。勾选如图:


IOS 1.jpg


注意: 为了获取精准的行为验证结果,需添加 AdSupport.framework 库⽀持


3.2.2 资源包内容图示


IOS 2.jpg

文件说明
接⼊文档/iOS SDK 接⼊文档.pdfiOS SDK 接⼊文档
接⼊文档/快速开始.pdf接⼊行为验证的整体流程文档
接⼊文档/后端⼆次验证⽂档.pdf后端二次验证文档
资源文件/YPCaptchaSDK.frameworkSDK Framework 文件
资源文件/YPResources.bundleSDK 静态资源包
Demo工程/YPVerifyDemo/demo ⼯程


注意: SDK 同时支持 simulator 和 device,⽀持 iOS 版本为 8.0 及以上。


3.2.3 添加行为验证


右击添加文件,导⼊资源文件目录下的文件。
IOS 3.jpg


3.2.4 添加依赖库 (必须,如下图)


添加系统库⽀持:


  • AdSupport.framework


IOS 4.jpg


3.4.5 设置 Other Linker Flags


找到主工程的 target -> Build Setting -> Linking -> Other Linker Flags, 将其设置为 -ObjC (如图
所示):
IOS 5.jpg


4. SDK API 说明


4.1 初始化启动接⼝


接⼝描述:


使用行为验证功能以前,需要先启动 SDK,该接⼝用于在 App 运⾏时启动 SDK。


接⼝定义:


/**
 初始化⾏行行为验证 SDK

 @param captchaId 后台分配的 APPID
 */
+ (void)startWithCaptchaId:(NSString *)captchaId;


接⼝说明:


AppDelegate didFinishLaunchingWithOptions 方法中: 通过平台分配的 APPID 启动
SDK。

参数参数说明
captchaId创建应⽤时平台分配的 APPID


接口示例:


#import <YPCaptchaSDK/YPCaptchaSDK.h>
#define kYPCaptchaId @"your captcha Id"

@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;


接⼝示例:


#import <YPCaptchaSDK/YPCaptchaSDK.h>

@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. 验证码接口响应码释义

响应码错误信息具体描述
0verify success验证成功
1bad request验证请求数据缺失或格式有误
2verify fail验证不通过
400param_invalid请求参数错误,检查 i k 参数
400captcha_id_invalidAPPID 不存在
429too many requests请求过于频繁,请稍后再试
500server_error服务异常
10006network error网络请求异常
10007captchaId is nullAPPID 为空
10008cancel verify取消验证
10009verify expired验证超时
10010unknown error未知异常