文档

iOS客户端接入

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

增强版实人认证提供iOS客户端SDK,帮助您在您的业务应用(App)中实现实人认证功能。您可通过增强版实人认证的服务端认证初始化接口,获取增强版实人认证的唯一标识CertifyId,并使用CertifyId唤起增强版实人认证客户端SDK。本文介绍了如何在您的业务应用的iOS客户端集成卡证核身SDK的详细流程。

前提条件

  • 您的业务应用支持在iOS 9.0及以上版本的系统上运行。

  • 您的业务应用支持Objective-C或Swift集成服务。

配置开发环境

  1. info.plist中配置摄像头权限请求。

    添加Privacy - Camera Usage Description描述,例如:“App需要使用相机,是否允许?”。

  2. 在Xcode的编译设置中关闭Bitcode选项。

    设置路径:Build Settings > Build Options > Enable Bitcode,设置为NO即可。

  3. 在Xcode编译设置中添加设置-ObjC选项。

    设置路径:Build Settings > Linking > Other Linker Flags,添加-ObjC

配置依赖

  • 本地依赖方式

    1. 配置依赖文件。

      1. 下载卡证核身SDK(iOS)。SDK为ZIP包。

      2. 在Xcode设置Link Binary With Libraries,添加SDK中的framework和额外的系统库依赖。具体如下:

        • SDK中的包:

          #OCR识别
          AliyunIdentityPlatformOcr.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
    2. 拷贝资源文件。

      1. 在Xcode中选择TARGETS

      2. 单击Build Phases页签。

      3. 选中Copy Items If Needed选项,并在Copy Bundle Resources中添加以下bundle:

        • AliyunIdentityPlatform.bundle:位于AliyunIdentityPlatform.framework中。

        • AliyunIdentityOCR.bundle:位于AliyunIdentityOcr.framework中。

  • Cocoapods依赖方式

    在Podfile中相应位置填入依赖配置。

    pod 'AliyunIdentityPlatform', '~>1.2.4'
    警告

    Cocoapods集成方式不包含人脸设备安全模块,会增加人脸安全设备安全对抗模块暴露的风险。建议您使用本地依赖方式集成,以为您的业务应用带来最佳安全保障。

调用SDK

  1. 引入头文件。代码如下:

    #import <AliyunIdentityPlatform/AliyunIdentityPlatform.h>
  2. 初始化SDK。代码如下:

    [[AliyunIdentityPlatform sharedInstance] install];
  3. 获取MetaInfo数据。代码如下:

    NSString *metaInfo = [[AliyunIdentityPlatform sharedInstance] getMetaInfo];

    返回值是NSDictionary类型,您需要在服务端将其转换为JSON字符串格式。

    调用服务端初始化认证接口(身份证核验初始化)时入参MetaInfo中传入该值。

  4. 开始认证。

    调用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"。
    • kIdentityParamKeyValidIdCardDate:@"YES", 
      //是否校验身份证有效期,有效值为"YES"或"NO"。
    • kIdentityParamKeyNextButtonColor:@"#00FF00",
      //OCR识别结果确认页底部按钮的底色。
    • kIdentityParamKeyOcrSelectPhoto:@"YES",
      //OCR过程中是否开启从相册选择图片功能,有效值为"YES"或"NO",默认为"YES"。
    • 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:表示调用结果错误码的详细原因。

Demo代码包

卡证核身Demo(iOS)

  • 本页导读
文档反馈