有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
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
错误信息内容
错误的详细实际原因,主要用于定位问题
@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 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 -

-(NSString *)description;
@end