如何在 mPaaS iOS 项目中接入阿里云金融级实人认证服务

背景

在mPaaS项目中集成 阿里云金融级实人认证 和在普通 iOS 原生项目中的步骤并不完全一致,需要处理好共享组件库之间的冲突,并在 mPaaS 项目中注册好实人认证服务的 拦截器

准备工作

  • 创建 mPaaS 工程。

    说明

    本文以 mPaaS iOS 60 基线托管模式框架为例介绍详细接入步骤。如果 mPaaS 项目已经创建完毕,可跳过此步。

    1. 首先通过 mPaaS Extension 创建一个 iOS 项目,按需选择需要接入的组件。

    2. 创建完成后,确保 mPaaS 项目可以正常编译、调试和运行。

  • 接入实人认证服务:参考 实人认证服务开通文档,开通实人认证服务并获取正确的 AccessKey。

接入步骤

接入步骤如下:

  1. 接入实人认证 SDK

  2. 配置 mPaaS 容器及实人认证拦截器

  3. 调用实人认证业务

  4. 验证

接入实人认证 SDK

  1. 下载 实人认证 mPaaS 版 SDK 并解压后得到如下文件: SDK

  2. frameworks 文件夹下所有的 framework 文件添加到工程中: frameworks

  3. 找到并拷贝以下四个 bundle 文件,并将其添加到工程的 Resources 目录中,并确保在 Build Phases > Copy Bundle Resources 中包含这四个 bundle :

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

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

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

    • AlipayVerifyBundle.bundle:位于 framework 文件夹中。bundles

  4. 开发配置:

    • 确认 info.plist 中配置允许使用相机权限:camera

    • Xcode 编译设置,确认 Enable Bitcode 选项设置为关闭:Enable Bitcode

    • Xcode 编译设置,确保在 Linking > Other Linker Flags 中包含 -ObjC-framework "BioAuthAPI"-lxml2 三个设置:Other Linker Flags

配置 mPaaS 容器及实人认证拦截器

在 mPaaS 项目中,需要通过拦截器对认证业务的请求进行特殊处理。拦截器 ZolozMobileInterceptor 已经实现,并包含在实人认证 SDK 中,此处需要把该拦截器注册到 mPaaS 拦截器配置中。同时,需要打开 mPaaS 容器 shouldWKDispatchStartEvent 开关。

代码示例如下:

// 位置:DTFrameworkInterface+DEMO.m
...
- (void)application:(UIApplication *)application beforeDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

    // Step 1. 初始化 mPaaS H5 容器
    [MPNebulaAdapterInterface initNebula];

    // Step 2. 初始化 RPC 拦截器
    [MPRpcInterface initRpc];

    // Step 3. 配置 Zoloz 必要的拦截器
    ZolozMobileInterceptor *zolozIcp = [[ZolozMobileInterceptor alloc] init];
    [MPRpcInterface addRpcInterceptor:zolozIcp];

    //Step 4.人脸模块初始化。
    [ZolozSdk init];
}

- (void)application:(UIApplication *)application afterDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    //Step 5. Nebula 容器配置修改
    NBServiceConfigurationGet().shouldWKDispatchStartEvent = YES;
}
...

调用实人认证业务

服务调用方法如下:

// URL字段为生产的认证地址
[[APVerifyService sharedService] startVerifyService:@{@"url": url?:@"",
                                                          @"certifyId": @"test-certifyId",
                                                          @"ext": @"test-extInfo"
                                                          } target:self block:^(NSMutableDictionary * resultDic){
                                                              NSLog(@"%@", resultDic);
                                                          }];

验证

正确拉起服务,完成验证后,应该见到如下界面:

authenticated

点击这里 下载代码示例。