Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
87ecdc7f
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3604
Star
108
Fork
923
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
120
列表
看板
标记
里程碑
合并请求
110
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
120
Issue
120
列表
看板
标记
里程碑
合并请求
110
合并请求
110
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
87ecdc7f
编写于
2月 03, 2023
作者:
DCloud_Heavensoft
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update dev.md
上级
8eeed197
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
81 addition
and
62 deletion
+81
-62
docs/uniCloud/frv/dev.md
docs/uniCloud/frv/dev.md
+81
-62
未找到文件。
docs/uniCloud/frv/dev.md
浏览文件 @
87ecdc7f
...
@@ -4,12 +4,21 @@ uni实人认证服务,分前端api和云端api,云端为uniCloud API。
...
@@ -4,12 +4,21 @@ uni实人认证服务,分前端api和云端api,云端为uniCloud API。
如开发者的业务不在uniCloud上,需参考
[
云函数url化
](
../http.md
)
文档编写云函数提供http接口供外部访问,由uniCloud获取到认证结果后转交给开发者的非uniCloud服务器上。
如开发者的业务不在uniCloud上,需参考
[
云函数url化
](
../http.md
)
文档编写云函数提供http接口供外部访问,由uniCloud获取到认证结果后转交给开发者的非uniCloud服务器上。
首先在uniCloud服务空间新建一个云函数/云对象,用于处理实人认证业务。新建时在
[
云函数的扩展库
](
cf-functions.md#extension
)
中配置uni-cloud-verify扩展库。
在uni-app客户端和uniCloud云函数中调用如下api,实现下图流程:
-
云函数获取实人认证实例:
[
uniCloud.getFacialRecognitionVerifyManager()
](
#get-frv-manager
)
-
云函数提交姓名、身份证号以获取认证服务的certifyId:
[
frvManager.getCertifyId()
](
#get-certify-id
)
-
云函数使用certifyId获取认证结果:
[
frvManager.getAuthResult()
](
#get-auth-result
)
-
客户端调起sdk刷脸认证:
[
uni.startFacialRecognitionVerify()
](
#start-frv
)
完整认证流程如下:
完整认证流程如下:
```
mermaid
```
mermaid
sequenceDiagram
sequenceDiagram
actor user as 用户端
actor user as 用户端
participant cf as 云函数
participant cf as 云函数
/云对象
participant service as 认证服务
participant service as 认证服务
user->>+cf: 1.1 上传姓名、身份证号获取certifyId
user->>+cf: 1.1 上传姓名、身份证号获取certifyId
activate user
activate user
...
@@ -21,20 +30,16 @@ sequenceDiagram
...
@@ -21,20 +30,16 @@ sequenceDiagram
user->>+cf: 4.1 请求更新认证结果
user->>+cf: 4.1 请求更新认证结果
cf->>+service: 5.1 请求认证结果
cf->>+service: 5.1 请求认证结果
service-->>-cf: 5. 返回认证结果
service-->>-cf: 5. 返回认证结果
cf-->>-user: 4.2
更新用户认证信息
返回认证成功
cf-->>-user: 4.2
入库更新用户认证信息并
返回认证成功
deactivate user
deactivate user
```
```
上述流程中涉及如下接口:
-
云函数获取实人认证实例:
[
uniCloud.getFacialRecognitionVerifyManager()
](
#get-frv-manager
)
当然,如果您使用uni-id,那么uni-id-pages已经帮您内置好这个功能,前端页面和云端逻辑均已写好,无需开发拿来就用。
[
详见
](
待补充
)
-
云函数提交姓名、身份证号以获取认证服务的certifyId:
[
frvManager.getCertifyId()
](
#get-certify-id
)
-
云函数使用certifyId获取认证结果:
[
frvManager.getAuthResult()
](
#get-auth-result
)
-
客户端调起sdk刷脸认证:
[
uni.startFacialRecognitionVerify()
](
#start-frv
)
### 云函数接口
### 云函数接口
实人认证相关接口由uni-cloud-verify扩展库提供,
如何使用扩展库请参考:
[
云函数内使用扩展库
](
cf-functions.md#extension
)
实人认证相关接口由uni-cloud-verify扩展库提供,
调用
`uniCloud.getFacialRecognitionVerifyManager()`
需云函数/云对象中加载对应的扩展库。
[
参考
](
cf-functions.md#extension
)
#### 获取实人认证实例@get-frv-manager
#### 获取实人认证实例@get-frv-manager
...
@@ -46,17 +51,17 @@ uniCloud.getFacialRecognitionVerifyManager(Object GetFacialRecognitionVerifyMana
...
@@ -46,17 +51,17 @@ uniCloud.getFacialRecognitionVerifyManager(Object GetFacialRecognitionVerifyMana
**参数说明**
**参数说明**
|参数名 |类型
|必填 |默认值 |说明
|
|参数名 |类型
|必填 |默认值 |说明
|
|:-:
|:-: |:-: |:-: |:-:
|
|:-:
|:-: |:-: |:-: |:-:
|
|requestId
|String |是 |-
|本次云函数请求的requestId,用于接口内部获取当前应用appId及客户端ip信息 |
|requestId
|String |是 |-
|本次云函数请求的requestId,用于接口内部获取当前应用appId及客户端ip信息 |
**返回值**
**返回值**
此接口返回实人认证实例
此接口返回实人认证实例
对象
**示例代码**
**示例代码**
云函数
-
云函数
```
js
```
js
exports
.
main
=
async
(
event
,
context
)
=>
{
exports
.
main
=
async
(
event
,
context
)
=>
{
...
@@ -66,12 +71,13 @@ exports.main = async (event, context) => {
...
@@ -66,12 +71,13 @@ exports.main = async (event, context) => {
};
};
```
```
云对象
-
云对象
```
js
```
js
'
use strict
'
;
'
use strict
'
;
module
.
exports
=
{
module
.
exports
=
{
_before
()
{
_before
()
{
// 本示例写在_before中,可以按需调整到某个方法中
this
.
frvManager
=
uniCloud
.
getFacialRecognitionVerifyManager
({
this
.
frvManager
=
uniCloud
.
getFacialRecognitionVerifyManager
({
requestId
:
this
.
getUniCloudRequestId
()
requestId
:
this
.
getUniCloudRequestId
()
})
})
...
@@ -121,7 +127,7 @@ exports.main = async (event, context) => {
...
@@ -121,7 +127,7 @@ exports.main = async (event, context) => {
```
js
```
js
module
.
exports
=
{
module
.
exports
=
{
_before
()
{
_before
()
{
// _before是云对象中每个方法运行前都会执行的方法
this
.
frvManager
=
uniCloud
.
getFacialRecognitionVerifyManager
({
this
.
frvManager
=
uniCloud
.
getFacialRecognitionVerifyManager
({
requestId
:
this
.
getUniCloudRequestId
()
requestId
:
this
.
getUniCloudRequestId
()
})
})
...
@@ -146,19 +152,19 @@ frvManager.getAuthResult(Object GetAuthResultParam)
...
@@ -146,19 +152,19 @@ frvManager.getAuthResult(Object GetAuthResultParam)
**参数说明**
**参数说明**
|参数名
|类型 |必填 |默认值 |说明
|
|参数名
|类型 |必填 |默认值 |说明
|
|:-:
|:-: |:-: |:-: |:-:
|
|:-:
|:-: |:-: |:-: |:-:
|
|certifyId
|String |是 |- |认证id
|
|certifyId
|String |是 |- |认证id
|
|needAlivePhoto |String |否 |N
|是否获取认证照片,Y_O (原始图片)、Y_M(虚化,背景马赛克)、N
(不返图) |
|needAlivePhoto |String |否 |N
|是否获取认证照片,
`Y_O`
(原始图片)、
`Y_M`
(虚化,背景马赛克)、
`N`
(不返图) |
**返回值**
**返回值**
|字段名
|类型 |必备 |说明
|
|字段名
|类型 |必备 |说明
|
|:-:
|:-: |:-: |:-:
|
|:-:
|:-: |:-: |:-:
|
|authState |String |是
|人脸检测状态。PROCESSING:初始化;SUCCESS:检测成功;FAIL:检测失败|
|authState |String |是 |人脸检测状态。PROCESSING:初始化;SUCCESS:检测成功;FAIL:检测失败|
|score
|Number |authState为SUCCESS时必备 |活体检测结果分数
|
|score
|Number |authState为SUCCESS时必备 |活体检测结果分数
|
|quality
|Number |authState为SUCCESS时必备 |人脸图片质量分
|
|quality
|Number |authState为SUCCESS时必备 |人脸图片质量分
|
|base64Photo|String |authState为SUCCESS时必备 |认证图片的base64内容
|
|base64Photo|String |authState为SUCCESS时必备 |认证图片的base64内容 |
**示例代码**
**示例代码**
...
@@ -256,22 +262,22 @@ uni.startFacialRecognitionVerify({
...
@@ -256,22 +262,22 @@ uni.startFacialRecognitionVerify({
**参数说明**
**参数说明**
| 参数
| 类型 | 是否必传| 支持平台 |描述
|
| 参数
| 类型 | 是否必传 | 支持平台 |描述
|
|---
|--- |--- |--- |---
|
|---
|--- |--- |--- |---
|
| certifyId
| String| 是
| 安卓、iOS |认证流水号,由服务端根据接入的业务模式调用对应的初始化接口获取 |
| certifyId
| String| 是
| 安卓、iOS |认证流水号,由服务端根据接入的业务模式调用对应的初始化接口获取 |
| progressBarColor
| String| 否 | 安卓、iOS | 刷脸圈的颜色
|
| progressBarColor
| String| 否 | 安卓、iOS | 刷脸圈的颜色
|
| activityIndicatorColor
| String| 否 | iOS | 网络等待菊花颜色
|
| activityIndicatorColor
| String| 否 | iOS | 网络等待菊花颜色
|
| progressBarBackgroundColor| String| 否
| 安卓 | 刷脸圈的背景颜色
|
| progressBarBackgroundColor| String| 否
| 安卓 | 刷脸圈的背景颜色
|
| quitAlertTitle
| String| 否 | 安卓 | 刷脸页退出对话框的标题
|
| quitAlertTitle
| String| 否 | 安卓 | 刷脸页退出对话框的标题
|
| quitAlertMessage
| String| 否 | 安卓 | 刷脸页退出对话框的内容
|
| quitAlertMessage
| String| 否 | 安卓 | 刷脸页退出对话框的内容
|
| timeoutAlertTitle
| String| 否 | 安卓 | 刷脸页超时对话框的标题
|
| timeoutAlertTitle
| String| 否 | 安卓 | 刷脸页超时对话框的标题
|
| timeoutAlertMessage
| String| 否 | 安卓 | 刷脸页超时对话框的内容
|
| timeoutAlertMessage
| String| 否 | 安卓 | 刷脸页超时对话框的内容
|
| failAlertTitle
| String| 否 | 安卓 | 刷脸页错误提示对话框的标题
|
| failAlertTitle
| String| 否 | 安卓 | 刷脸页错误提示对话框的标题
|
| failAlertMessage
| String| 否 | 安卓 | 刷脸页错误提示对话框的内容
|
| failAlertMessage
| String| 否 | 安卓 | 刷脸页错误提示对话框的内容
|
| title
| String| 否 | 安卓 | 刷脸圈的颜色
|
| title
| String| 否 | 安卓 | 刷脸圈的颜色
|
| success
| String| 否 | 安卓、iOS | 成功回调
|
| success
| String| 否 | 安卓、iOS | 成功回调
|
| fail
| String| 否 | 安卓、iOS | 失败回调
|
| fail
| String| 否 | 安卓、iOS | 失败回调
|
| complete
| String| 否 | 安卓、iOS | 完成回调
|
| complete
| String| 否 | 安卓、iOS | 完成回调
|
注: 颜色值为六位十六进制字符串("#FF0000")
注: 颜色值为六位十六进制字符串("#FF0000")
...
@@ -296,28 +302,41 @@ cause
...
@@ -296,28 +302,41 @@ cause
**云端错误码**
**云端错误码**
|错误码 |说明
|
|错误码 |说明 |
|:-:
|:-:
|
|:-:
|:-:
|
|0
|请求成功
|
|0
|请求成功
|
|50001 |缺少参数
|
|50001 |缺少参数 |
|50002 |参数类型、取值不正确
|
|50002 |参数类型、取值不正确 |
|54003 |appId不存在
|
|54003 |appId不存在 |
|54004 |服务空间不在白名单中
|
|54004 |服务空间不在白名单中 |
|54020 |请求记录不存在,certifyId无效
|
|54020 |请求记录不存在,certifyId无效 |
|54021 |云函数内缺少接口调用凭证,请联系DCloud处理
|
|54021 |云函数内缺少接口调用凭证,请联系DCloud处理 |
|54022 |服务空间不存在
|
|54022 |服务空间不存在 |
|55000 |服务器错误,请联系DCloud处理
|
|55000 |服务器错误,请联系DCloud处理 |
|55001 |Api调用失败,实人认证服务商服务不可用,请联系DCloud处理|
|55001 |Api调用失败,实人认证服务商服务不可用,请联系DCloud处理|
|60000 |服务不可用,请联系DCloud处理
|
|60000 |服务不可用,请联系DCloud处理 |
**客户端错误码**
**客户端错误码**
|错误码 |错误信息 |描述 |
|错误码 |错误信息 |描述 |
|--- |--- |--- |
|--- |--- |--- |
|0 |刷脸完成 |实际结果需要通过服务端查询接口 |
|0 |刷脸完成 |实际结果需要通过服务端查询接口 |
|10001 |certifyId不能为空|参数certifyId为空 |
|10001 |certifyId不能为空 |参数certifyId为空 |
|10010 |刷脸异常 |刷脸异常,具体原因详见cause |
|10010 |刷脸异常 |刷脸异常,具体原因详见cause |
|10011 |验证中断 |如用户主动退出、验证超时等,具体原因详见cause |
|10011 |验证中断 |如用户主动退出、验证超时等,具体原因详见cause |
|10012 |网络异常 |网络异常 |
|10012 |网络异常 |网络异常 |
|10013 |刷脸验证失败 |实际结果需要通过服务端查询结果 |
|10013 |刷脸验证失败 |实际结果需要通过服务端查询结果 |
|10020 |设备设置时间异常 |设备设置时间异常,仅iOS返回 |
|10020 |设备设置时间异常 |设备设置时间异常,仅iOS返回 |
**注意**
-
为对抗攻击,蚂蚁实人认证返回的错误原因比较模糊。
### 发行打包
实人认证内置在HBuilderX 3.7.1+ 的标准基座中,所以可真机运行。
但如果开发者需要打包或打自定义基座,需在manifest的app模块配置中,勾选实人认证(注意不是faceId)。
因蚂蚁SDK仅支持Android5+和iOS10+,所以Android4、iOS9等低版本手机无法使用实人认证。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录