本机验证 iOS SDK 接入指南

2024.03.29 10:38:45

    一、SDK集成

    1.搭建开发环境

    • 1、导入 NTESQuickPass.framework 到XCode工程,直接拖拽NTESQuickPass.framework文件到Xcode工程内(请勾选Copy items if needed选项)

    • 2、添加依赖库,在项目设置target -> 选项卡General ->Linked Frameworks and Libraries添加如下依赖库:

      • TYRZSDK.framework
      • EAccountApiSDK.framework
      • OAuth.framework
      • libz.1.2.8.tbd
      • libc++.1.tbd
      • 如需支持iOS8.0系统,需添加CoreFoundation.framework,并将CoreFoundation.framework的status改为optional
    • 3、在项目设置target -> 选项卡Build Phase -> Copy Bundle Resources添加依赖bundle:

      • sdk_oauth.bundle
      • TYRZResource.bundle
    • 4、在Xcode中找到TARGETS-->Build Setting-->Linking-->Other Linker Flags在这个选项中需要添加 -ObjC

      备注:

      (1)如果已存在上述的系统framework,则忽略

      (2)SDK 最低兼容系统版本 iOS 8.0
      SDK下载

    二、SDK 使用

    2.1 Object-C 工程

    • 1、在项目需要使用SDK的文件中引入QuickPass SDK头文件,如下:

        #import <NTESQuickPass/NTESQuickPass.h>
      
    • 2、在页面初始化的地方初始化 SDK,如下:

        - (void)viewDidLoad {
        	[super viewDidLoad];
      
        	// sdk调用
        	self.manager = [NTESQuickPassManager sharedInstance];
        }
      
    • 3、在需要获取accessToken的地方,调用SDK的verifyPhoneNumber:businessID:completion:接口,如下:

        [self.manager verifyPhoneNumber:self.phoneNumTextField.text businessID:BUSINESSID completion:^(NSDictionary * _Nullable params, NTESQPStatus status, BOOL success) {
        	if (success) {
        	
           	// 获取accessToken成功回调
           	
           	} else {
           	
           	// 获取accessToken失败回调
           	
           	}];
      

    备注: 在获取accessToken成功的回调里做下一步check接口的验证,在获取accessToken失败的回调里做切换到发送短信验证码登录的操作,易盾提供短信发送能力

    三、SDK 接口

    • 1、枚举

        /**
        *  @abstract    获取accessToken的状态
        *
        *  @说明         NTESQPCompletionHandler对象的参数,用于表示获取accessToken的状态
        *               NTESQPPhoneNumInvalid表示手机号不合法
        *               NTESQPNonGateway表示当前网络环境不可网关验证
        *               NTESQPAccessTokenSuccess获取accessToken成功
        *               NTESQPAccessTokenFailure获取accessToken失败
        *               NTESQPAccessTokenTimeout获取accessToken超时
        *
        */
        typedef NS_ENUM(NSInteger, NTESQPStatus) {
        	NTESQPPhoneNumInvalid = 1,
        	NTESQPNonGateway,
        	NTESQPAccessTokenSuccess,
        	NTESQPAccessTokenFailure,
        	NTESQPAccessTokenTimeout,
        };
      
    • 2、回调block

        /**
        *  @abstract   block
        *
        *  @说明        获取accessToken结果的回调
        */
        typedef void(^NTESQPCompletionHandler)(NSDictionary *params, NTESQPStatus status, BOOL success);
      
    • 3、参数

        /**
         *  @abstract   属性
         *
         *  @说明        设置获取accessToken的超时时间,单位ms,不传或传0默认3000ms,最大不超过10000ms
         */
        @property (nonatomic, assign) NSTimeInterval timeOut;
      
    • 4、单例

        /**
        *  @abstract   单例
        *
        *  @return     返回NTESQuickPassManager对象
        */
        + (NTESQuickPassManager *)sharedInstance;
      
    • 5、获取accessToken

        /**
        *  @abstract   配置参数
        *
        *  @param      phoneNumber         用户输入的手机号
        *  @param      businessID          易盾分配的业务方ID
        *  @param      completionHandler   返回验证结果,做下一步处理
        *
        */
        - (void)verifyPhoneNumber:(NSString *)phoneNumber businessID:(NSString *)businessID completion:(NTESQPCompletionHandler)completionHandler;
        - 
      
    • 6、precheck支持业务方定制配置URL与额外参数extData,获取accessToken

        /**
         *  @abstract   配置参数
         *
         *  @param      phoneNumber         用户输入的手机号
         *  @param      businessID          易盾分配的业务方ID
         *  @param      configURL           preCheck接口的私有化url,若传nil或@"",默认使用@"https://ye.dun.163yun.com/v1/preCheck"
         *  @param      extData             当设置configURL时,可以增加额外参数,接入方自行处理
         *  @param      completionHandler   返回验证结果,做下一步处理
         *
         */
        - (void)verifyPhoneNumber:(NSString *)phoneNumber businessID:(NSString *)businessID configURL:(NSString * _Nullable)configURL extData:(NSString *  _Nullable)extData completion:(NTESQPCompletionHandler _Nullable)completionHandler;
      
    • 7、获取SDK当前版本号

        /**
         获取当前SDK版本号
         */
        - (NSString *)getSDKVersion;
      

    :因出于安全考虑,为了防止本机校验接口被恶意用户刷量造成经济损失,本机校验让接入者通过自己的服务端去调用易盾check接口,通知接入者本机校验是否通过。详细介绍请开发者参考易盾本机校验服务端接口文档。

    在线咨询 电话咨询:95163223 免费试用