已更新更新时间:2024-08-13 17:33:02集成工具收藏订阅更新我的文档设置返回文档对于 ios 自有应用开发者,可查看本文在应用项目中引入 sdk 并做相应配置,完成后即可调用接口发起认证并查询认证结果等。说明:如果客户端接入过程中需要寻求凯发app官方网站的技术支持,可搜索 31424624 或点击 加入 蚂蚁人脸认证 官方答疑钉钉群。1 接入流程1.1 第一步:接入 sdk1.1.1 使用须知●目前 sdk 只支持 ios 10.0 或更高版本的手机系统。●sdk 不支持 swift 方式调用,如有相关需求可点击右侧的咨询浮窗进行沟通。1.1.2 接入流程环境配置●摄像头权限 请在 info.plist 配置摄像头权限。 ● bitcode 配置 enable bitcode 设置为 no。 路径指引:build settings > linking > other linker flags。 other linker flags 配置 -objc -lxml2。 sdk 依赖引入在集成 sdk 前,请仔细阅读 。前置条件已安装 或以上版本。接入步骤注意:如果之前使用传统方式接入,请先移除引入的 framework、bundle。1在工程中添加如下所示的 podfile 并将 xxx 替换为实际值,或者在已有 podfile 中添加相应的 source 与 antverify 依赖。2执行 pod install --repo-update 即可完成接入。您还可以追加 --verbose 查看详细日志。资源下载demo1.2 第二步:配置 scheme(不建议跳转支付宝刷脸)注意:本步骤仅在需要使用跳转支付宝 app 刷脸的场景中需配置 scheme,如果仅在接入方 app 内刷脸可忽略此步骤。1.2.1 配置支付宝回跳 scheme如果您已经配置了 scheme,请跳过该配置步骤。说明:scheme 地址必须与 (初始化人脸认证服务接口)中配置的 return_url 地址一致。1.2.2 配置跳转支付宝的 scheme配置跳转支付宝的 scheme,表示 app 通过 scheme 可以打开支付宝,即在 info 的 lsapplicationqueriesschemes 数组中增加 alipays,如下图所示。说明:由于 ios 系统限制,lsapplicationqueriesschemes 数组中 item 数量不能超过 50,否则会出现异常,因此在 lsapplicationqueriesschemes 数组中增加 alipays 时,应保证当前 item 数量不超过 50。1.3 第三步:调用核心代码1.3.1 引用头文件1.3.2 初始化客户端 sdk建议开发者在 app 运行初期尽早调用初始化代码,如隐私政策同意后的最早期。1.3.3 获取 bizcode人脸核身&活体检测 sdk 中目前支持两种业务模式:●默认人脸核身模式,即当 app 配置可跳到支付宝(scheme 配置)时且设备安装了支付宝,进入支付宝刷脸,当无法跳到支付宝时在 app 内进行刷脸。●强制 app 内人脸核身模式,所有人脸核身都强制在 app 内刷脸,不跳转到支付宝。说明:由于默认人脸核身模式中跳转支付宝(scheme 配置)存在安全隐患,因此建议使用强制 app 内人脸核身模式。bizcode 用来标识业务场景,通过 bizcode 可以指定业务模式。您可以通过 sdk 获取 bizcode 值或者手动指定 bizcode 值。通过 sdk 获取 bizcode 值说明:根据当前 app 是否可以唤起支付宝人脸服务所得到的返回值不同。使用默认人脸核身模式时,则通过 sdk 获取 bizcode 值,sdk 会自动判断环境中是否可跳转支付宝。手动指定 bizcode 值bizcode 值的定义如下:bizcode 常量值含义face_sdk强制 app 内刷脸的人脸核身模式您可以根据您的业务模式手动设置 bizcode 值。缺省情况下如果手机中安装了支付宝 app,则跳转到支付宝使用支付宝 app 刷脸,否则使用自有 app 刷脸。注意:人脸认证和活体检测对应的刷脸 url 不同,因此在使用活体检测功能时,请配置活体认证对应的刷脸 url。手动指定 bizcode 值的方法如下:如果所有刷脸实人认证均在自有 app 内完成而无需跳转到支付宝进行刷脸时,您可以进行如下设置:获取 certifyid(认证流程号)及认证服务请求地址 url客户通过自己的服务端发起 openapi 请求。具体获取方式请查看 。获取到 certifyid 以及认证服务请求地址 url 后在下文客户端接口中使用。开始刷脸服务入参说明:参数描述optionsoptions@{@"url":url?:@"", //认证 url,从商家服务端获取,请查看 。@"certifyid": @"test-certifyid",// 认证流水号,从商家服务端获取,请查看 。@"bizcode"://表示使用的服务方式,请查看 获取bizcode。}targetvc当前 controller,必须包含根 navigationcontroller。且因 sdk 内部已有自定义 navigationbarview,故还需隐藏 navigationbar 再进入 sdk,跳转回来后恢复。block结果的返回,在 resultdic 里面获取。block 返回值说明回调函数带入的参数 result: { resultstatus: 'xx', result: { } }。参数类型描述resultstatusstring认证流程结果状态码,详见下文 resultstatus 说明 枚举定义。result.certifyidstring本次认证流水号 certifyid。result.errorcodestring业务错误码。resultstatus 说明状态码描述9000认证通过。9001唤起支付宝成功,无需处理。6002网络异常。6001用户取消了业务流程,主动退出。6003为 kapverifysdkbizcodenew 传入 bizcode,但无法打开支付宝。4000系统异常。注意事项sdk 会根据 app 配置的 scheme 情况以及 app 所处设备中是否存在支付宝 app 等,确定 bizcode 的值,自动选择在 app 内还是唤起支付宝启动认证服务,如有仅在 app 内进行认证的需求,可点击右侧的咨询浮窗进行沟通。常见问题唤起支付宝时返回值为 9001 时回调结果处理【appdelegate 中处理】●情况 1:因为异常情况等原因,用户未在支付宝中完成认证。返回商户 app 后,则需要在 app 启动等场景中进行查询,以结束认证流程。●情况 2:用户在支付宝中完成认证,并通过 scheme 再次发送回调信息,此时则需要在系统的 scheme 中判断是否为请求中上传的 scheme,并进行处理。2 问题反馈反馈问题时请附加 sdk 版本号、是否唤端打开支付宝、现象描述/日志/视频等,sdk 版本号可在 apverifyservice-info.plist 中查看(真实版本号请对应标题),如下所示。