开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
网页&移动应用 
app 端人脸核身(通过 app 唤起支付宝刷脸)(隐藏)
客户端接入流程
开发 > 服务端 > 会员产品 >  >  > ios 客户端接入流程
已更新
收藏
订阅更新
我的文档
设置
对于 ios 自有应用开发者,可查看本文在应用项目中引入 sdk 并做相应配置,完成后即可调用接口发起认证并查询认证结果等。
说明:如果客户端接入过程中需要寻求凯发app官方网站的技术支持,可搜索 31424624 或点击 加入 蚂蚁人脸认证 官方答疑钉钉群。
1 接入流程
1.1 第一步:接入 sdk
1.1.1 使用须知
目前 sdk 只支持 ios 10.0 或更高版本的手机系统。
sdk 不支持 swift 方式调用,如有相关需求可点击右侧的咨询浮窗进行沟通。
1.1.2 接入流程
环境配置
摄像头权限 请在 info.plist 配置摄像头权限。
1.png

bitcode 配置 enable bitcode 设置为 no。
2.png
路径指引:build settings > linking > other linker flags。 other linker flags 配置 -objc -lxml2。
3.png

sdk 依赖引入
在集成 sdk 前,请仔细阅读
前置条件
已安装 或以上版本。
接入步骤
注意:如果之前使用传统方式接入,请先移除引入的 framework、bundle。
1在工程中添加如下所示的 podfile 并将 xxx 替换为实际值,或者在已有 podfile 中添加相应的 source 与 antverify 依赖。
2执行 pod install --repo-update 即可完成接入。您还可以追加 --verbose 查看详细日志。
资源下载
demo

1.2 第二步:配置 scheme(不建议跳转支付宝刷脸)
注意:本步骤仅在需要使用跳转支付宝 app 刷脸的场景中需配置 scheme,如果仅在接入方 app 内刷脸可忽略此步骤。
1.2.1 配置支付宝回跳 scheme
如果您已经配置了 scheme,请跳过该配置步骤。
4.png

说明:scheme 地址必须与 (初始化人脸认证服务接口)中配置的 return_url 地址一致。
1.2.2 配置跳转支付宝的 scheme
配置跳转支付宝的 scheme,表示 app 通过 scheme 可以打开支付宝,即在 info 的 lsapplicationqueriesschemes 数组中增加 alipays,如下图所示。
说明:由于 ios 系统限制,lsapplicationqueriesschemes 数组中 item 数量不能超过 50,否则会出现异常,因此在 lsapplicationqueriesschemes 数组中增加 alipays 时,应保证当前 item 数量不超过 50。
5.png

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 后在下文客户端接口中使用。
开始刷脸服务
入参说明:
参数
描述
options
options
@{@"url":url?:@"", //认证 url,从商家服务端获取,请查看
@"certifyid": @"test-certifyid",// 认证流水号,从商家服务端获取,请查看
@"bizcode"://表示使用的服务方式,请查看  获取bizcode。
}
targetvc
当前 controller,必须包含根 navigationcontroller。
且因 sdk 内部已有自定义 navigationbarview,故还需隐藏 navigationbar 再进入 sdk,跳转回来后恢复。
block
结果的返回,在 resultdic 里面获取。
block 返回值说明
回调函数带入的参数 result: { resultstatus: 'xx',  result: { } }。
参数
类型
描述
resultstatus
string
认证流程结果状态码,详见下文 resultstatus 说明 枚举定义。
result.certifyid
string
本次认证流水号 certifyid。
result.errorcode
string
业务错误码。
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 中查看(真实版本号请对应标题),如下所示。
6.png

内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图