全部产品
云市场

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

更新时间:2020-05-14 15:54:58

背景

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

准备工作

  • 创建 mPaaS 工程。
    说明:本文以 mPaaS iOS 60 基线托管模式框架为例介绍详细接入步骤。如果 mPaaS 项目已经创建完毕,可跳过此步。
    1. 首先通过 mPaaS Extension 创建一个 iOS 项目,按需选择需要接入的组件。
      create1create2
    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 开关。

代码示例如下:

  1. // 位置:DTFrameworkInterface+DEMO.m
  2. ...
  3. - (void)application:(UIApplication *)application beforeDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
  4. // Step 1. 初始化 mPaaS H5 容器
  5. [MPNebulaAdapterInterface initNebula];
  6. // Step 2. 初始化 RPC 拦截器
  7. [MPRpcInterface initRpc];
  8. // Step 3. 配置 Zoloz 必要的拦截器
  9. ZolozMobileInterceptor *zolozIcp = [[ZolozMobileInterceptor alloc] init];
  10. [MPRpcInterface addRpcInterceptor:zolozIcp];
  11. //Step 4.人脸模块初始化。
  12. [ZolozSdk init];
  13. }
  14. - (void)application:(UIApplication *)application afterDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
  15. //Step 5. Nebula 容器配置修改
  16. NBServiceConfigurationGet().shouldWKDispatchStartEvent = YES;
  17. }
  18. ...

调用实人认证业务

服务调用方法如下:

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

验证

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

authenticated

点击这里 下载代码示例。