背景
在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);
}];
验证
正确拉起服务,完成验证后,应该见到如下界面:
点击这里 下载代码示例。