核身结果返回

最近更新时间:2022-11-08 15:23:26

我的收藏
iOS SDK 中,人脸识别结果返回给接入方有两种方式,两种结果回调都在 Main Thread 完成: 如果您只需要获取刷脸结果,不需要拉取视频和照片,您可以信任前端 SDK 核身结果,返回中的 isSuccess 字段 YES 代表人脸核身对比成功;NO 代表人脸核身失败。核身 SDK 和核身后台服务之间通信采用加密方式,可以有效防止结果篡改。
1. 通过实现 WBFaceVerifyCustomerServiceDelegate 的 WBFaceVerifyCustomerServiceDelegate 方法,通过该方法返回 WBFaceVerifyResult 对象。
2. 无需实现 delegate 方法,通过注册 WBFaceVerifyCustomerServiceDidFinishedNotification 通知,在接受到该通知时,进行结果处理。
WBFaceVerifyCustomerServiceDidFinishedNotification 通知中,通过获取该通知的 userInfo,获取字典中 key 为 faceVerifyResult 对应的 value 对象就是 WBFaceVerifyResult。

WBFaceVerifyResult 说明

字段名
类型
字段含义
说明
isSuccess
BOOL
人脸核身是否成功
YES 代表认证成功,NO 代表认证失败,具体原因参考 人脸核身 IOS 错误码
sign
NSString
签名
供 App 校验人脸核身结果的安全性
liveRate
NSString
活体检测分数
-
similarity
NSString
人脸比对分数
“仅活体检测” 类型不提供此分数
WbFaceError
自定义对象
人脸核身错误
人脸核身成功时为 nil

WBFaceError 对象说明

字段名
类型
字段含义
说明
domain
NSString
错误发生的阶段
只有当 domain=WBFaceErrorDomainCompareServer 时表示用户完成了刷脸,可以通过接口去拉取刷脸结果。其他 domain 表示用户刷脸中途退出或命中了风控逻辑,后端无法查询到刷脸结果
code
NSString
错误码
-
desc
NSString
错误描述
如有需求,可以展示给用户
reason
NSString
错误信息内容
错误的详细实际原因,主要用于定位问题
RiskInfo
自定义对象
后台返回的刷脸风险信息
详见备注说明。请注意:部分情况下此字段不返回,请不要做强校验

RiskInfo 对象说明

RiskInfo 是 SDK 用来给合作方传递刷脸风险信息的对象,在结果回调的 WBFaceVerifyResult 对象中作为参数返回给合作方 App。 其中 RiskInfo 对象的各个字段意义如下表所示:
字段名
类型
字段含义
说明
deviceInfoLevel
String
设备风险等级
设备风险级别,如果命中风险则显示
deviceInfoTag
String
设备风险标签
设备风险等级描述
riskInfoLevel
String
身份风险等级
如果命中身份风险则显示风险等级
riskInfoTag
String
身份风险标签
身份风险等级描述
@interface WBFaceSimpleModeResult : NSObject

/**
 结果对应的订单号
 */
@property (nonatomic, copy, readonly) NSString *orderNo;

/**
 接下来用于人脸对比的安全性参数
 */
@property (nonatomic, copy, readonly) NSString *encryptAESKey;

/**
 视频编码
 */
@property (nonatomic, copy, readonly) NSString *userVideoString;

/**
 使用传入 publickey 加密过的 AES
 */
@property (nonatomic, copy, readonly) NSString *videoEncryptAESKey;
/**
 用于后面进行人脸比对的数据参数
 */
@property (nonatomic, copy, readonly) NSString *identifyStr;

@end

/*
 增强级结果,具体参数含义参考后台返回字段,结果为透传
 */
@interface WBFaceRiskInfo : NSObject
@property (nonatomic, copy, readonly) NSString *deviceInfoLevel;
@property (nonatomic, copy, readonly) NSString *deviceInfoTag;
@property (nonatomic, copy, readonly) NSString *riskInfoLevel;
@property (nonatomic, copy, readonly) NSString *riskInfoTag;
@end

/**
 人脸服务返回结果对象
 */
@interface WBFaceVerifyResult : NSObject
/**
人脸比对结果是否通过:

YES:表示人脸服务通过
NO:表示人脸服务不通过
 */
@property (nonatomic, assign, readonly) BOOL isSuccess;
/**
 结果对应的订单号
 */
@property (nonatomic, copy, readonly) NSString *orderNo;
/**
isSuccess == YES 时,sign 有值,可以去后台拉取本次人脸服务的照片,视频存证
isSuccess == NO 时,sign 无意义
 */
@property (nonatomic, copy, readonly) NSString * sign;
/**
 活体检测服务得分

 isSuccess == YES 时, liveRate 有值:
        1. liveRate 可能是 @"分数为空", 这种情况具体咨询合作方
        2. float类型的字符串, 请调用 [liveRate floatValue] 获取具体分数
 isSuccess == NO  时, liveRate 无意义
 */
@property (nonatomic, copy, readonly) NSString * liveRate;

/**
 人脸比对服务得分

 isSuccess == YES 时, similarity 有值:
         1. similarity 可能是 @"分数为空", 这种情况具体咨询合作方
         2. float类型的字符串, 请调用 [similarity floatValue] 获取具体分数
 isSuccess == NO  时, similarity 无意义
 */
@property (nonatomic, copy, readonly) NSString * similarity;

/**
 人脸比对图片之一

isSuccess == YES 时,该属性是上送比对图片之一UIImage的base64编码字符串(图片格式是jpg)

isSuccess == NO 时,如果是 SDK 返回的错误码,该属性为nil,如果是后端返回的错误,该属性是上送比对图片之一UIImage的base64编码字符串(图片格式是jpg)
*/
@property (nonatomic, copy, readonly) NSString * userImageString;

/**
 isSuccess == YES 时候, error 无意义
 isSuccess == NO  时, error中存储的具体错误信息,参考 WBFaceError.h
 */
@property (nonatomic, strong, readonly) WBFaceError * error;

#pragma mark - 非标专用返回参数

@property (nonatomic, strong, readonly) WBFaceSimpleModeResult *simpleModeResult;

#pragma mark - 增强SDK专用参数
@property (nonatomic, strong, readonly) WBFaceRiskInfo *riskInfo;

#pragma mark -

-(NSString *)description;
@end