概述及资源

环境需求

条目 资源
开发目标 兼容iOS7, 推荐iOS8+
开发环境 Xcode 8.0
系统依赖 Webkit.framework, JavascriptCore.framework
产品依赖 test-Button
sdk三方依赖

相关开发资料

条目 资源
产品结构流程 交互流程,通讯流程
SDK下载 gop-ios-sdk
接口文档 gop-ios-api-docs或查看头文件注释
错误码 Error Code 列表
Demo工程下载 gop-ios-demo
下载体验地址 OnePass.ipa

安装

获取SDK

下载获取

git clone https://github.com/GeeTeam/gop-ios-sdk.git

git clone git@github.com:GeeTeam/gop-ios-sdk.git

导入SDK并配置环境

  1. 如果您是手动添加SDK, 将下载获取的GTOnePass.framework, TYRZNoUISDK.framework,GT3Captcha.frameworkGT3Captcha.bunele4个文件拖拽到工程中, 确保Copy items if needed已被勾选。

    import

    请使用Linked Frameworks and Libraries方式导入framework。在拖入GTOnePass.framework,TYRZNoUISDK.frameworkGT3Captcha.framework到工程时后, 请检查.framework是否被添加到PROJECT -> Build Phases -> Linked Frameworks and Libraries, 以确保正常编译。

    linkedlibraries

  2. 针对静态库中的Category, 需要在对应target的Build Settings->Other Linker Flags添加-ObjC编译选项。如果依然有问题,再添加-all_load

    linkerflags

配置接口

继承完成test-Button后, 开发者集成客户端sdk前, 必须先在您的服务器上搭建相应的服务端SDK,配置verify_Url,并配置从极验后台获取的customID

集成用户需要使用iOS SDK完成提供的以下接口:

  1. 配置并初始化
  2. 调用校验接口
  3. 处理结果
  4. 处理错误

集成代码参考下方的代码示例

编译并运行你的工程

编译你的工程, 体验全新的极验onepass产品!

build

轻轻点击集成的验证按钮, 如此自然, 如此传神。

代码示例

初始化与校验

在工程中的文件头部倒入静态库态库GTOnePass.framework

#import <GTOnePass/GOPManager.h>
#import <GT3Captcha/GT3Captcha.h>

初始化

初始化验证管理器GOPManager的实例, 在相应的控制页初始化方法中对GOPManager实例调用注册方法以获得注册数据:

//网站主部署的ONEPASS的校验接口
#define verify_url @"***"
...
- (GOPManager *)manager {
if (!_manager) {
_manager = [[GOPManager alloc] initWithCustomID:@"<---我应该为32位哟--->" verifyUrl:verify_url timeout:10.0];
}
return _manager;
}

进行人机验证

- (void)startCaptcha {
// 请参考demo或test-button内容
}

进行onepass校验

获取到人机验证test-Buttonvalidate后, 自定义方法verifyPhoneNum:来进行对本机号码校验:

- (void)verifyPhoneNum:(NSString *)num validate:(NSString *) validate {
//自定义规则检测输入的手机号码的合法性
if (![self checkPhoneNumFormat:num]) return;
// TODO UI相关操作
// TODO 调用onepass校验接口
[self.manager verifyPhoneNum:num withCaptchaValidate:validate completion:^(NSDictionary *dict) {
...
} failure:^(NSError *error) {
...
}];
}

处理校验结果以及错误

onepass在校验成功后, 返回的onepass结果, 如果失败通过短信验证码作为补充

NSString *num = 手机号;
NSString *validate = 验证校验结果
[self.manager verifyPhoneNum:num withCaptchaValidate:validate completion:^(NSDictionary *dict) {
NSString *type = [dict objectForKey:@"type"];
if ([type isEqualToString:@"onepass"]) {// No sense Success
// TODO onepass成功
}
else {
// TODO onepass失败, 使用短信验证作为补充
}
} failure:^(NSError *error) {
[self.nextButton gtm_removeIndicator];
if (error.code != -999) {// 忽略-999
// TODO 处理错误
}
NSLog(@"error: %@", error);
}];

更加完整的示例代码请参考官方提供的Demo