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
CoreFoundation.framework
,并将CoreFoundation.framework
的status改为optional3、在项目设置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下载
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失败的回调里做切换到发送短信验证码登录的操作,易盾提供短信发送能力。
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接口,通知接入者本机校验是否通过。详细介绍请开发者参考易盾本机校验服务端接口文档。