增强版实人认证提供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中的包:
#OCR识别 AliyunIdentityPlatformOcr.framework xNN.framework XMedia.framework APMUtils.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
- SDK中的包:
- 拷贝资源文件
- 在Xcode中选择TARGETS。
- 单击Build Phases页签。
- 选中Copy Items If Needed选项,并在Copy Bundle Resources中添加以下bundle:
- AliyunIdentityPlatform.bundle:位于AliyunIdentityPlatform.framework中。
- AliyunIdentityOCR.bundle:位于AliyunIdentityOcr.framework中。
- 配置依赖文件
- Cocoapods依赖方式在Podfile中相应位置填入依赖配置
pod 'AliyunIdentityPlatform', '~>1.2.4'
注意 CocoPod集成方式不包含人脸设备安全模块,会增加人脸安全设备安全对抗模块暴露的风险。建议您使用本地依赖方式集成,以为您的业务应用带来最佳安全保障。
调用SDK
- 引入头文件。代码如下:
#import <AliyunIdentityPlatform/AliyunIdentityPlatform.h>
- 初始化SDK。代码如下:
[[AliyunIdentityPlatform sharedInstance] install];
- 获取MetaInfo数据。代码如下:
NSString *metaInfo = [[AliyunIdentityPlatform sharedInstance] getMetaInfo];
返回值是NSDictionary类型,您需要在服务端将其转换为JSON字符串格式。
调用服务端初始化认证接口(身份证核验初始化)时入参MetaInfo中传入该值。
- 开始认证。
调用SDK。代码如下:
NSMutableDictionary * extParams = @{}.mutableCopy; [[AliyunIdentityPlatform sharedInstance] verifyWithCertifyId:@"这里传服务端下发的CertifyId" withCurrentViewController:self withExtParams:extParams withVerifyMode:verifyMode complete:^(AliyunIdentityVerifyRes *response) { NSString *resContent = [NSString stringWithFormat:@"Code=%d Message=%@", response.code, response.message]; [weakSelf aliyunAlertWithTitle:@"认证结果" message:resContent confirmTitle:@"好的" handler:^{ }]; }];
调用参数说明:名称 类型 描述 certifyId NSString 通过服务端初始化认证接口(身份证核验初始化)获取。 currentViewController UIViewController 当前调用SDK的viewController,用于SDK内部UI展示。 extParams NSDictionary 业务方对SDK内部相关UI的定制参数,可以为空。支持自定义的字段,具体如下: kIdentityParamKeyShowResult:@"YES", //定义是否展示OCR识别结果确认页,有效值为"YES"或"NO"。
kIdentityParamKeyWaterMark:@"仅供业务使用", //定义识别结果页证件水印文案。
kIdentityParamKeyIdCardFaceOnly:@"NO", //是否只识别身份证人像面,有效值为 @"YES"或@"NO"。
kIdentityParamKeyScanMaxTime:@"30", //OCR扫描证件的超时时间,单位是秒,默认30秒。
kIdentityParamKeyValidIdCardDate:@"YES", //是否校验身份证有效期。
kIdentityParamKeyNextButtonColor:@"#00FF00", //OCR识别结果确认页底部按钮的底色。
kIdentityParamKeyOcrMode:@"PHOTO", //PHOTO表示OCR为拍照模式,SCAN表示OCR为扫描模式,不指定该项默认为拍照模式。
kIdentityParamKeyOcrSelectPhoto:@"YES", //OCR过程中是否开启从相册选择图片功能,有效值为"YES"或"NO",默认为YES。
kIdentityParamKeyUIMode:@"RoundMode" //选择刷脸UI样式,目前支持取值RectMode(方形刷脸框)/RoundMode(圆形刷脸框,默认值)。
kIdentityParamKeyRoundProgressColor:@"#0xFF6A00" //圆脸模式下,进度条颜色,格式如#0xFF6A00阿里橙。
verifyMode 枚举 识别证件类型,目前支持的类型如下: AliyunIdentityModeIdCardOCR = 0, //身份证OCR识别。
AliyunIdentityModeBankCardOCR = 1, //银行卡OCR识别。
返回结果说明:- AliyunIdentityVerifyRes.code:表示调用结果错误码,详见下表。
Code 说明 1000 认证通过。 1001 认证失败。 1002 系统异常。 1003 SDK初始化失败,请确认客户端时间是否正确。 1004 摄像头错误。 1005 网络错误。 1006 用户取消。 1007 CertifyId无效。 1009 客户端时间戳错误。 - AliyunIdentityVerifyRes.message:表示调用结果错误码的详细原因。