增强版实人认证提供iOS客户端SDK,帮助您在您的业务应用(App)中实现实人认证功能。您可通过增强版实人认证的服务端认证初始化接口,获取增强版实人认证的唯一标识CertifyId,并使用CertifyId唤起增强版实人认证客户端SDK。本文介绍了如何在您的业务应用的iOS客户端集成增强版活体验证SDK的详细流程。
前提条件
您的业务应用支持在iOS 9.0及以上版本的系统上运行。
您的业务应用支持Objective-C或Swift集成服务。
配置开发环境
在info.plist中配置摄像头权限请求。
添加Privacy - Camera Usage Description描述,例如:“App需要使用相机,是否允许?”
在Xcode的编译设置中关闭Bitcode选项。
设置路径:
,设置为NO即可。在Xcode编译设置中添加设置-ObjC选项。
设置路径:
,添加-ObjC。
配置依赖
本地依赖方式
配置依赖文件
下载增强版活体验证SDK(iOS)。SDK为ZIP包。
在Xcode设置Link Binary With Libraries,添加SDK中的framework和额外的系统库依赖。具体如下:
SDK中的包:
# 活体检测组件。 AliyunIdentityFace.framework ToygerService.framework # 卡证核身调度组件。 AliyunIdentityPlatform.framework # 实用工具类。 AliyunIdentityUtils.framework deviceiOS.framework # OSS上传组件。 AliyunOSSiOS.framework
系统库依赖:
AudioToolbox.framework CoreMedia.framework AVFoundation.framework SystemConfiguration.framework UIKit.framework CoreTelephony.framework CoreMotion.framework Accelerate.framework libresolv.tbd libsqlite3.tbd libc++.tbd libz.tbd
拷贝资源文件
在Xcode中选择TARGETS。
单击Build Phases页签。
选中Copy Items If Needed选项,并在Copy Bundle Resources中添加以下bundle:
AliyunIdentityPlatform.bundle:位于AliyunIdentityPlatform.framework中。
AliyunIdentityFace.bundle:位于AliyunIdentityFace.framework中。
ToygerService.bundle:位于ToygerService.framework中。
Cocoapods依赖方式
在Podfile中相应位置填入依赖配置
pod 'AliyunIdentityPlatform', '~>1.2.4'
重要Cocoapods集成方式不包含人脸设备安全模块,会增加人脸安全设备安全对抗模块暴露的风险。建议您使用本地依赖方式集成,以为您的业务应用带来最佳安全保障。
调用SDK
引入头文件。命令如下:
#import <AliyunIdentityPlatform/AliyunIdentityPlatform.h>
初始化SDK。命令如下:
说明在正式调用SDK其他任何接口之前,必须先进行SDK初始化。
[[AliyunIdentityPlatform sharedInstance] install];
获取MetaInfo数据。命令如下:
NSString *metaInfo = [[AliyunIdentityPlatform sharedInstance] getMetaInfo];
返回值是NSDictionary类型,您需要在服务端将其转换为JSON字符串格式。
调用服务端初始化认证接口(InitSmartVerify)时,需要在入参MetaInfo中传入该值。
开始认证。
认证接口:
/** * 增强版活体验证。 * @param certifyId:从服务端获取到的CertifyId。 * @param viewController:用来展示SDK页面。 * @param extParams:自定义扩展参数。 * @param completeBlock:完成回调。 */ - (void)faceCompareWithCertifyId:(NSString *)certifyId withCurrentViewController:(UIViewController *)viewController withExtParams:(NSDictionary *)extParams complete:(AliyunIdentityVerifyBlock)completeBlock;
调用参数说明:
名称
类型
描述
certifyId
NSString
通过服务端初始化认证接口(InitSmartVerify)获取。
currentViewController
UIViewController
当前调用SDK的viewController,用于SDK内部UI展示。
extParams
NSDictionary
业务方对SDK内部相关UI的定制参数,可以为空。支持自定义的字段说明如下:
kIdentityParamKeyShowResult:@"YES", // 定义是否展示OCR识别结果确认页,有效值为"YES"或"NO"。
kIdentityParamKeyWaterMark:@"仅供业务使用", // 定义识别结果页证件水印文案。
kIdentityParamKeyIdCardFaceOnly:@"NO", // 是否只识别身份证人像面,有效值为"YES"或"NO"。
kIdentityParamKeyValidIdCardDate:@"YES", // 是否校验身份证有效期,有效值为"YES"或"NO"。
kIdentityParamKeyNextButtonColor:@"#00FF00" , // OCR识别结果确认页底部按钮的底色。
kIdentityParamKeyRoundProgressColor:@"#0xFF6A00" // 圆脸模式下,进度条颜色,格式如#0xFF6A00阿里橙。
返回结果说明:
AliyunIdentityVerifyRes.code:表示调用结果错误码,详见返回值说明。
AliyunIdentityVerifyRes.message:表示调用结果错误码的详细原因。
认证接口调用示例:
NSMutableDictionary * extParams = @{}.mutableCopy; [[AliyunIdentityPlatform sharedInstance] faceCompareWithCertifyId:@"这里传服务端下发的CertifyId" withCurrentViewController:self withExtParams:extParams complete:^(AliyunIdentityVerifyRes *response) { NSString *resContent = [NSString stringWithFormat:@"Code=%d Message=%@", response.code, response.message]; [weakSelf aliyunAlertWithTitle:@"认证结果" message:resContent confirmTitle:@"好的" handler:^{ }]; }];
返回值说明
Code | 说明 |
1000 | 认证通过。 |
1001 | 认证失败。 |
1002 | 系统异常。 |
1003 | SDK初始化失败,请确认客户端时间是否正确,手机系统时间被修改会导致阿里云网关校验异常。 |
1004 | 摄像头错误。 |
1005 | 网络错误。 |
1006 | 用户取消。 |
1007 | CertifyId无效。 |
1009 | 客户端时间戳错误。 |