Skip to content

GeeTeam/gop-ios-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GTOnePass iOS SDK

了解产品: www.geetest.com

需要拖入仓库SDK路径下的GTOnePass.framework, TYRENoUISDK.framework 2个文件

同时需要集成Sensebot产品的GT3Captcha.framework, GT3Captcha.bundle文件以获取相关参数。

概述及资源

环境需求

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

相关开发资料

条目 资源
SDK 下载 gop-ios-sdk
接口文档 gop-ios-header-docs 或查看头文件注释
错误码 Error Code
产品结构流程 交互流程,通讯流程

安装

获取SDK

下载获取

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

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

导入SDK并配置环境

  1. 将下载获取的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

配置接口

开发者集成客户端 SDK 前, 必须先在您的服务器上搭建相应的服务端 SDK,配置verify_Url, 并配置从极验后台获取的customID。这里以服务端 verify_Url 配置成功,客户端开发步骤为例,如下:

  1. verify_UrlcustomID 初始化 GOPManager 实例

    GOPManager *manager = [[GOPManager alloc] initWithCustomID:customID verifyUrl:verify_Url timeout:5.0];
  2. 调用校验接口

    [self.manager verifyPhoneNum:@"输入的合法手机号" withCaptchaValidate:nil completion:^(NSDictionary *dict) {
            
        } failure:^(NSError *error) {
            
        }];

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

编译并运行你的工程

编译你的工程, 体验全新的极验 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位哟--->" configUrl:config_url verifyUrl:verify_url timeout:5.0];
    }
    
    return _manager;
}

进行 OnePass 校验

使用 OnePass.framework 接口方法 verifyPhoneNum:withCaptchaValidate:completion:failure: 对本机号码校验

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

Note: 在 verifyPhoneNum:withCaptchaValidate:completion:failure: 方法中,validate 参数默认传值 nil。极验提供身份验证(OnePass) 和 人机验证(Sensebot),当开发者只需部署身份验证时,validate 参数值传入 nil 即可;当开发者需结合部署人机验证和身份验证时,validate 参数值从人机验证成功返回结果中获得。如需结合部署人机验证和身份验证,请联系极验后台修改相应配置。

处理校验结果以及错误

OnePass 校验成功直接通过验证, 如果失败可以通过短信验证码作为补充。开发者可在 OnePass.framework 接口方法 verifyPhoneNum:withCaptchaValidate:completion:failure: 成功或者失败的回调中处理对应逻辑

NSString *num = @“校验后的合法手机号“;

[self.manager verifyPhoneNum:num withCaptchaValidate:nil 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);
}];

更加完整的示例代码请参考GTMPhone工程