Gerald.Zhang 发表于 2023-7-14 11:39:09

【对接方案】人脸实名认证

本帖最后由 Gerald.Zhang 于 2023-7-17 14:53 编辑

随着移动互联网的快速发展,人脸实名认证已经成为了个人认证的一个重要方式,尤其是涉及到个人信息查看、资金操作等业务中,远程身份验证环节都需要核验操作者的身份,因此需要进行实时的活体检测以及人脸比对。如果您的活字格应用中,也有类似的场景,那么可以通过这篇文章,完成该功能的对接与实现。

目前世面上关于人脸识别的技术已经非常成熟,各大云厂商都提供了对应的人脸识别技术服务。本篇教程基于百度AI开放平台的人脸实名认证方案进行活字格侧的对接和集成。

集成效果

让我们先看一下,对接的认证效果是怎么样的!
https://cdn.grapecity.com.cn/hzg/videos/%E4%BA%BA%E8%84%B8%E8%AE%A4%E8%AF%81%E8%AF%86%E5%88%AB.mp4

接下来让我们来看一下,具体的对接工作是怎么做的~
PS:示例工程下载地址请转向葡萄城市场
前置工作
1.注册成为百度AI开放平台的开发者,并进行企业认证。
2. 在开放平台的控制台中选择人脸识别服务

3. 进入公有云服务 - 应用列表中,创建人脸识别应用,应用是调用服务的基础能力单元。

[*]在领取接口的同时,可以按需领取免费调用额度,用于接入测试。具体额度费用请参考百度AI开放平台的收费标准。


[*]在使用人脸服务接口时,如果要使用认证功能,必须额外领取身份证识别接口的调用额度,用来你调用身份证OCR识别功能(必须领取,否则在使用服务时会报错)。除了在创建应用时的接口选择中,勾选文字识别 ⇒ 身份证识别之外,还需要进入文字识别服务中,开通身份证识别的调用额度(如图进入后,选择卡证ocr,领取身份证识别即可)。

4. 创建项目。选择项目管理 - 新建项目。

5. 在项目中创建方案。由于活字格生成的是h5页面,因此,咱们应当选择H5实名认证方案

6. 按需配置方案,方案中集成了认证过程中的诸多标准。具体可以参考百度AI开放平台的文档。
活字格侧对接
一. 服务端命令
在集成人脸认证的功能时,我们需要对接多个api,将他们进行封装后,总共有5个服务端命令:


[*]getBaiduOauthToken:获取百度AI开放平台的认证token,这个token为百度全平台的基础身份验证,用于账号校验,获取到的access_token需要挂载在每一个实际功能api的url上。
[*]getBaiduFaceVerifyToken:获取百度H5实名人脸认证方案的认证token,该token为人脸认证的唯一标识,有效期内可以依此为凭证获取认证结果信息。想要获取到改token,需要在请求时挂载getBaiduOauthToken获取到的access_token。
[*]getBaiduFacePrintUrl:获取百度人脸认证的H5URL。这个url为认证模块的入口地址,需要在地址中挂载getBaiduFaceVerifyToken获取到的认证token以及成功与失败的定向地址。
[*]getBaiduFacePrintResultSimple:获取人脸实名认证最终采集的人脸信息。根据认证token返回的结果信息会在云端保留两个小时
[*]getBaiduFacePrintResultDetail:获取认证结果的详细信息,包含身份证OCR识别信息、用户二次确认的身份证信息,活体检测信息、及用户对权威数据源图片进行比对的分数信息。根据认证token返回的结果信息会在云端保留三天。

这五个服务端命令已经集成使用百度人脸认证的基础功能。使用者无需关注内部实现,直接将这5个服务端命令导入到自己的系统中,直接调用即可。调用方式可以参考demo中的认证入口。
二. 全局变量配置
在第一步中的服务端命令中,需要用户自定义配置的选项,都已经放在了全局变量中

其中,非红框的全局变量为api接口,无需修改。红框中的全局变量为用户需要自定义的配置项:

[*]baiduClientId:该值为前置工作的第三步中,创建的应用的 API Key
[*]baiduClientSecret:该值为前置工作的第三步中,创建的应用的 API Secret
[*]baiduFacePrintPlanId:该值为前置工作的第五步中,为应用创建的项目方案Id
[*]fgcFacePrintSuccessPage:该值为认证成功后,需要定向跳转的成功页面
[*]fgcFacePrintFailedPage:该值为认证失败后,需要定向跳转的失败页面

三. 数据表
在demo中,内置了两张数据表,分别为 token缓存表与verify_token_record。

[*]token缓存表:用于存储access_token,百度AI开放平台的access_token过期时长为30天,所以无需每次调用都走网络请求,完全可以将其存储起来,在即将过期时进行更新即可。更新策略为当前时间距离过期时间还剩十分之一时进行更新。
[*]verify_token_record:用于存储每次认证的认证token,因为该token需要作为唯一标识去获取认证结果信息。在本demo中,认证的唯一性由用户名和状态确定,开发者可根据自己的实际情况进行设计。

其他说明

[*]本方案为使用百度人脸认证的通用方案。如果您需要对接的平台是阿里云,腾讯云等其他平台,需要按照对应平台的api文档去修改对应的服务端命令。如果您使用的是百度平台,那么您只需要将该demo的数据表与服务端命令导入到自己的应用工程中,配置好对应的全局变量即可使用认证。
[*]该方案要求您的百度开发者账号必须通过企业认证,重要的事情说三次。
[*]该方案的所有接口调用,都使用的是百度提供的免费测试调用额度。如果您的功能模块在测试完成后需要投入使用,请务必关注对应调用接口的费用情况!!!
[*]全局变量中的fgcFacePrintSuccessPage与fgcFacePrintFailedPage,配置值应当能够被公网访问,因为这两个url是需要被百度侧回调的。





页: [1]
查看完整版本: 【对接方案】人脸实名认证