文档

iOS客户端接入

更新时间:

本文为您介绍iOS客户端图形认证的集成方法及接口的功能示例。

接入步骤

下载SDK

登录号码认证产品控制台,在概览页面右侧API&SDK区域,单击立即下载,进入API&SDK页面,根据页面提示下载并解压对应SDK。

创建认证方案

您导入项目或调用API接口时,会用到方案Code或方案编码等参数信息,请先在号码认证产品控制台,创建图形认证方案,获取方案Code等参数信息。

导入SDK

  1. 如果您是手动添加SDK,将下载获取的AlicomCaptcha4.framework文件拖拽到工程中,确保Copy items if needed已被勾选。请使用Linked Frameworks and Libraries方式导入framework。并检查 .framework文件是否被添加到PROJECT > Build Phases > Linked Frameworks and Libraries

  2. 针对静态库中的Category,需要在对应targetSettings > Build Settings > Other Linker Flags添加-ObjC

  3. 在工程中引入AlicomCaptcha4.bundle,否则无法使用验证。将SDK路径下的AlicomCaptcha4.bundle拖入项目中。

配置接口

  1. 使用ID配置验证初始化

  2. 启动验证

  3. 获取验证结果参数,并对提交结果参数进行二次校验,避免伪造

  4. 使用错误代理方法处理验证过程中可能遇到的问题

说明

需要遵守<AlicomCaptcha4SessionTaskDelegate>协议以处理验证结果和可能返回的错误。

代码示例

在工程中导入验证静态库AlicomCaptcha4.framework的文件。

#import <AlicomCaptcha4/AlicomCaptcha4.h>

初始化

初始化验证管理器AlicomCaptcha4Session的实例,在UIButton初始化方法中对AlicomCaptcha4Session实例调用注册方法以获得注册数据。其他可选配置项可查看AlicomCaptcha4SessionConfiguration中定义的接口或属性。

#define captchaID @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
@interface ViewController () <AlicomCaptcha4SessionTaskDelegate>
@property (strong, nonatomic) IBOutlet UIButton *startBtn;
@property (nonatomic, strong) AlicomCaptcha4Session *captchaSession
@end
@implementation ViewController
- (AlicomCaptcha4Session *)captchaSession {
 if (!_captchaSession) {
 _captchaSession = [AlicomCaptcha4Session sessionWithCaptchaID
 /// 如需修改默认配置
 /// 可选择下⾯注释的⽅式创建实例
 // AlicomCaptcha4SessionConfiguration *config = [AlicomCaptcha4SessionConfiguration defaultConfiguration];
 // config.timeout = 8.0f;
 // ...
 // _captchaSession = [AlicomCaptcha4Session sessionWithCaptchaID:captchaID configuration:config];
 
 _captchaSession.delegate = self;
 }
 
 return _captchaSession;
}
- (void)viewDidLoad {
 [super viewDidLoad];
 
 // 提前初始化验证会话,如果不在此位置调用,将使⽤懒加载模式
 [self captchaSession];
 
 [self.startBtn addTarget:self action:@selector(start) forControlEvents
}

调用验证

初始化完成后,调用下⾯的方法进行验证。

- (void)start {
 [self.captchaSession verify];
}

处理验证错误

验证过程中若有报错,您可以通过遵守AlicomCaptcha4SessionTaskDelegate协议后,在下面的代理方法中进行处理。其他错误详情也可参考错误码

- (void)alicomCaptchaSession:(AlicomCaptcha4Session *)captchaSession didReceiveError
 NSLog(@"error: %@", error.description);
 }