如何在 mPaaS iOS 项目中接入阿里云金融级实人认证服务
背景
在mPaaS项目中集成 阿里云金融级实人认证 和在普通 iOS 原生项目中的步骤并不完全一致,需要处理好共享组件库之间的冲突,并在 mPaaS 项目中注册好实人认证服务的 拦截器。
准备工作
创建 mPaaS 工程。
说明本文以 mPaaS iOS 60 基线托管模式框架为例介绍详细接入步骤。如果 mPaaS 项目已经创建完毕,可跳过此步。
首先通过 mPaaS Extension 创建一个 iOS 项目,按需选择需要接入的组件。
创建完成后,确保 mPaaS 项目可以正常编译、调试和运行。
接入实人认证服务:参考 实人认证服务开通文档,开通实人认证服务并获取正确的 AccessKey。
接入步骤
接入步骤如下:
接入实人认证 SDK
下载 实人认证 mPaaS 版 SDK 并解压后得到如下文件:
将
frameworks
文件夹下所有的 framework 文件添加到工程中:找到并拷贝以下四个 bundle 文件,并将其添加到工程的
Resources
目录中,并确保在Build Phases
>Copy Bundle Resources
中包含这四个 bundle :APBToygerFacade.bundle
:位于APBToygerFacade.framework
中。ToygerService.bundle
:位于ToygerService.framework
中。BioAuthEngine.bundle
:位于BioAuthEngine.framework
中。AlipayVerifyBundle.bundle
:位于framework
文件夹中。
开发配置:
确认
info.plist
中配置允许使用相机权限:Xcode 编译设置,确认 Enable Bitcode 选项设置为关闭:
Xcode 编译设置,确保在 Linking > Other Linker Flags 中包含
-ObjC
、-framework "BioAuthAPI"
、-lxml2
三个设置:
配置 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);
}];
验证
正确拉起服务,完成验证后,应该见到如下界面:

点击这里 下载代码示例。