文档中心>人脸核身

API 概述

最近更新时间:2023-12-15 15:03:21

我的收藏
iOS 端慧眼 SDK 主要涉及的类主要包含 HuiYanAuthSDKKit、AuthConfig,下面对其支持的 API 做出详细说明。

HuiYanAuthSDKKit

HuiYanAuthSDKKit 为慧眼 SDK 的对外接口类,主要逻辑也都是调用此类完成。
API
功能描述
获取 SDK 实例
资源释放接口
设置主动获取客户 FaceIdToken 的接口(即将弃用)
启动活体核身检测的接口
设置关键流程的回调信息的回调监听

sharedInstance;

/// 获取SDK实例
+ (nonnull instancetype)sharedInstance;
功能介绍:慧眼 SDK 获取 SDK 实例。

clearInstance;

/// 清理SDK资源
+ (void)clearInstance;
功能介绍:慧眼 SDK 释放 Instance 的接口。

setFaceIdTokenCreateFunction:

/// 设置 FaceIdToken
///@param onFaceIdTokenCreateFunction 获取FaceIdToken block
- (int)setFaceIdTokenCreateFunction:(FaceIdTokenCreateFunction _Nonnull)onFaceIdTokenCreateFunction;
功能介绍:设置主动获取客户 FaceIdToken 的接口。即将弃用该接口,建议设置 AuthConfig 中 token 字段。
传入参数:
参数类型
参数名称
参数含义
FaceIdTokenCreateFunction
主动获取客户 FaceIdToken 的回调

startHuiYanAuth:

/// 启动SDK模块,运行带有UI界面的功能识别模块
/// @note 请在View加载完毕后调用该接口
/// @param authConfig SDK需要运行的配置
/// @param onProcessSucceed 识别成功回调
/// @param onProcessFailed 识别失败回调
- (void)startHuiYanAuthWithAuthConfig:(AuthConfig * _Nonnull)authConfig
withProcessSucceedBlock:(TXYSDKKitProcessSucceedBlock _Nonnull)onProcessSucceed
withProcessFailedBlock:(TXYSDKKitProcessFailedBlock _Nonnull)onProcessFailed;
功能介绍:启动活体核身检测的接口。
传入参数:
参数类型
参数名称
参数含义
authConfig
启动活体核身的参数配置
onProcessSucceed
SDKKIt处理成功回调接口
onProcessFailed
SDKKIt处理失败回调接口

sendMainPublicEventListenerBlock

/// 设置关键流程的回调信息的监听(回调在子线程,不要直接出来UI事件)
-(void) sendMainPublicEventListenerBlock:(TXYHuiYanPublicEventCallBackBlock _Nonnull) publicEventCallBack;
功能介绍:设置关键流程的回调信息的监听(回调在子线程,不要直接出来 UI 事件)
传入参数:
参数类型
参数名称
参数含义
publicEventCallBack
处理回调信息的Block

AuthConfig

AuthConfig 是在启动慧眼 SDK 时的配置实体类,主要包含了以下属性。
类型
名称
含义
默认值
NSString
licensePath
客户申请的用户核审授权的License文件路径
NSString
faceTrackerPath
设置face-tracker-v003.bundle文件路径
NSString
token
客户获取到的FaceIdToken
customerConfig
客户自定义配置信息

CustomerConfig

AuthConfig 是在启动慧眼 SDK 时的配置实体类,主要包含了以下属性。
类型
名称
含义
默认值
TXYHuiYanEventDelegate
delegate
事件回调
NSString
authTips
核身时的提示信息(不超过100字符)
UIColor
authTipsTxtColor
提示信息文字颜色
UIColor
noteTipsErrorTextColor
核身错误文字颜色,默认红色
内部默认色
BOOL
isHiddenResultPage
是否隐藏核身结果页
NO
BOOL
isHiddenProtocolPage
是否隐藏协议展示页
NO
BOOL
isHiddenInnerDialog
是否隐藏内部弹窗
NO
long
authTimeoutMs
设置活体超时时间
10000
BOOL
isLiveDataEncrypt
是否对活体数据加密
NO
long
prepareTimeoutMs
准备阶段倒计时
15000
long
actionTimeoutMs
动作倒计时
15000
BOOL
isHiddenTimeoutLabel
是否隐藏倒计时
NO
BOOL
isHiddenLoadingPage
是否隐藏Loading
NO
BOOL
isCancelBtnRight
是否取消按钮靠右侧
NO
NSString
prepareImageViewDrawable
默认图替换
nil
NSString
userLanguageFileName
自定义语言bundle名
nil
NSString
userUIBundleName
自定义语言UI的bundle名
nil
NSString
userLanguageBundleName
设置自定义语言包名 如:en.lproj
nil
languageType
设置语言模式
HY_DEFAULT
BOOL
needLog
是否开启debug日志,默认打开
YES
UIColor
authCircleErrorColor
动作错背景圆框的颜色
rgbhex 值0xFF584C
UIColor
authCircleCorrectColor
动作正确时背景圆框的颜色
rgbhex值0x29CC85
UIColor
authLayoutBgColor
核身界面背景颜色
rgbhex值0xFF584C
CGFloat
feedBackTxtSize
提示文字大小

NSString
huiyanUIBundlePath
外部设置 HuiYanUIBundle.bundle 的路径(当该文件不在 mainBundle 中时需要设置,使用自定义 UI 时必填)
nil
NSString
userUIBundlePath
设置 UserUIBundle.bundle 的路径(当该文件不在 mainBundle 中时需要设置,使用自定义 UI 时必填)
nil
NSString
languageBundlePath
设置 LanuageSrcBundle.bundle 的路径(当该文件不在 mainBundle 中时需要设置,使用自定义多语言时必填)
nil

TXYHuiYanEventDelegate

用于返回宿主层当前事件。
@protocol TXYHuiYanEventDelegate <NSObject>
- (void)onStartLoading;// 已完成核身正在请求loading中
- (void)onStopLoading;// 请求完毕结束loading
@end

HY_LanguageType

用于设置 SDK 中语言模式,其中若设置 HY_CUSTOMIZE_LANGUAGE 则会读取 userLanguageBundleName 字段。
typedef enum : NSUInteger {
HY_DEFAULT = 0,//跟随系统设置
HY_ZH_HANS,//中文简体
HY_EN,//英文
HY_CUSTOMIZE_LANGUAGE //定制语言
} HY_LanguageType;

FaceIdTokenCreateFunction

用于提供给客户使用的获取 FaceIdToken 的接口类,客户需要返回客户获取到的 FaceIdToken 的值。即将弃用,建议使用 AuthConfig中token 来设置。
/// 用户设置主动刷新 返回FaceIDToken
typedef NSString *_Nullable(^FaceIdTokenCreateFunction)(void);
//设置FaceIdToken
[[HuiYanSDKKit sharedInstance] setFaceIdTokenCreateFunction:^NSString *{
return faceIdToken;
}];

TXYSDKKitProcessSucceedBlock

用于接受活体核身认证的结果成功监听 block。
/// SDKKIt处理成功回调接口
/// @param resultInfo 核身成功
/// @param retFaceidToken 返回FaceIdToken
typedef void (^TXYSDKKitProcessSucceedBlock)(id _Nonnull resultInfo, id _Nullable retFaceidToken);

TXYSDKKitProcessFailedBlock

用于接受活体核身认证的结果失败监听 block。
/// SDKKIt处理失败回调接口
/// @param error 处理过程中触发的异常错误
/// @param retFaceidToken 返回FaceIdToken
typedef void (^TXYSDKKitProcessFailedBlock)(NSError *_Nonnull error, id _Nullable retFaceidToken);

TXYHuiYanPublicEventCallBackBlock

用户接收公有云 SDK 的主要流程回调的 Block,HuiYanPublicEvent是关键事件信息。
/// SDK的内部主要流程的事件监听(在子线程中回调,不要直接进行UI操作)
/// @param publicEvent 流程里的关键事件信息
typedef void (^TXYHuiYanPublicEventCallBackBlock)(HuiYanPublicEvent publicEvent);

HuiYanPublicEvent

公有云回调关键事件的枚举。
// HuiYanPublicEvent 公有云特殊的事件
typedef enum : NSUInteger {
// 启动拉取光线序列
GET_LIVE_TYPE_HUIYAN,
// 本地识别开始
START_CHECK_HUIYAN,
// 本地识别结束准备开启网络请求
LOCAL_CHECK_OVER_HUIYAN,
// 得到网络请求结果,并且需要结果为success才会回调
GET_NET_RESULT_HUIYAN,
} HuiYanPublicEvent;

错误码

错误码
错误码值
错误码含义
HY_CAMERA_OPEN_FAIL
217
相机开启失败
HY_SDK_VEDIO_CUT_EXCEPTION
220
视频裁剪失败
HY_LIGHT_DATA_FORMAT_EXCEPTION
221
光线数据格式错误
HY_DETECT_TIMEOUT
222
动作检测超时
HY_CAMEREA_PERMISSION_EXCEPTION
219
摄像头权限异常
HY_NETWORK_ERROR
272
网络请求出现异常
HY_LOCAL_REF_FAILED_ERROR
273
本地初始化 SDK 时,本地检测失败,常见异常不存在 license 文件或者 license 过期
HY_USER_CANCEL_ERROR
274
用户主动取消核身流程
HY_INNER_ERROR_CODE
275
SDK 内部产生的异常,终止了核身流程
HY_DO_NOT_CHANGE_ERROR
276
在核身过程中切换应用发生终止流程的异常
HY_CAMEREA_PERMISSION_ERROR
277
获取摄像头过程中发生异常
HY_INIT_SDK_ERROR
278
未调用 init()方法,直接调用了启动检测
HY_VERIFY_LOCAL_ERROR
279
本地人脸检测失败
HY_SDK_VEDIO_CUT_ERR
282
本地合身视频采集失败
HY_SDK_TURING_TOKEN_GET_ERR
283
设备风险模块调用失败
HY_SDK_CRASH_ERR
284
crash
HY_SDK_INIT_MODEL_ERROR
285
初始化模型失败
HY_PREPARE_TIMEOUT
300
准备阶段超时
HY_LONGCHECK_TIMEOUT
301
耗时检测超时