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

行为验证 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 内无广告,但由于先前投放的特定⼴广告,可参考如下勾选,通过苹果审核。勾选如图:

    图片

    注意: 为了获取精准的行为验证结果,需添加 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

接口示例:

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

响应码 错误信息 具体描述
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 未知异常

results matching ""

    No results matching ""