Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43977266
unidocs-zh
提交
87ecdc7f
U
unidocs-zh
项目概览
weixin_43977266
/
unidocs-zh
与 Fork 源项目一致
Fork自
red_password / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
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。
如开发者的业务不在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
sequenceDiagram
actor user as 用户端
participant cf as 云函数
participant cf as 云函数
/云对象
participant service as 认证服务
user->>+cf: 1.1 上传姓名、身份证号获取certifyId
activate user
...
...
@@ -21,20 +30,16 @@ sequenceDiagram
user->>+cf: 4.1 请求更新认证结果
cf->>+service: 5.1 请求认证结果
service-->>-cf: 5. 返回认证结果
cf-->>-user: 4.2
更新用户认证信息
返回认证成功
cf-->>-user: 4.2
入库更新用户认证信息并
返回认证成功
deactivate user
```
上述流程中涉及如下接口:
-
云函数获取实人认证实例:
[
uniCloud.getFacialRecognitionVerifyManager()
](
#get-frv-manager
)
-
云函数提交姓名、身份证号以获取认证服务的certifyId:
[
frvManager.getCertifyId()
](
#get-certify-id
)
-
云函数使用certifyId获取认证结果:
[
frvManager.getAuthResult()
](
#get-auth-result
)
-
客户端调起sdk刷脸认证:
[
uni.startFacialRecognitionVerify()
](
#start-frv
)
当然,如果您使用uni-id,那么uni-id-pages已经帮您内置好这个功能,前端页面和云端逻辑均已写好,无需开发拿来就用。
[
详见
](
待补充
)
### 云函数接口
实人认证相关接口由uni-cloud-verify扩展库提供,
如何使用扩展库请参考:
[
云函数内使用扩展库
](
cf-functions.md#extension
)
实人认证相关接口由uni-cloud-verify扩展库提供,
调用
`uniCloud.getFacialRecognitionVerifyManager()`
需云函数/云对象中加载对应的扩展库。
[
参考
](
cf-functions.md#extension
)
#### 获取实人认证实例@get-frv-manager
...
...
@@ -46,17 +51,17 @@ uniCloud.getFacialRecognitionVerifyManager(Object GetFacialRecognitionVerifyMana
**参数说明**
|参数名 |类型
|必填 |默认值 |说明
|
|:-:
|:-: |:-: |:-: |:-:
|
|requestId
|String |是 |-
|本次云函数请求的requestId,用于接口内部获取当前应用appId及客户端ip信息 |
|参数名 |类型
|必填 |默认值 |说明
|
|:-:
|:-: |:-: |:-: |:-:
|
|requestId
|String |是 |-
|本次云函数请求的requestId,用于接口内部获取当前应用appId及客户端ip信息 |
**返回值**
此接口返回实人认证实例
此接口返回实人认证实例
对象
**示例代码**
云函数
-
云函数
```
js
exports
.
main
=
async
(
event
,
context
)
=>
{
...
...
@@ -66,12 +71,13 @@ exports.main = async (event, context) => {
};
```
云对象
-
云对象
```
js
'
use strict
'
;
module
.
exports
=
{
_before
()
{
// 本示例写在_before中,可以按需调整到某个方法中
this
.
frvManager
=
uniCloud
.
getFacialRecognitionVerifyManager
({
requestId
:
this
.
getUniCloudRequestId
()
})
...
...
@@ -121,7 +127,7 @@ exports.main = async (event, context) => {
```
js
module
.
exports
=
{
_before
()
{
_before
()
{
// _before是云对象中每个方法运行前都会执行的方法
this
.
frvManager
=
uniCloud
.
getFacialRecognitionVerifyManager
({
requestId
:
this
.
getUniCloudRequestId
()
})
...
...
@@ -146,19 +152,19 @@ frvManager.getAuthResult(Object GetAuthResultParam)
**参数说明**
|参数名
|类型 |必填 |默认值 |说明
|
|:-:
|:-: |:-: |:-: |:-:
|
|certifyId
|String |是 |- |认证id
|
|needAlivePhoto |String |否 |N
|是否获取认证照片,Y_O (原始图片)、Y_M(虚化,背景马赛克)、N
(不返图) |
|参数名
|类型 |必填 |默认值 |说明
|
|:-:
|:-: |:-: |:-: |:-:
|
|certifyId
|String |是 |- |认证id
|
|needAlivePhoto |String |否 |N
|是否获取认证照片,
`Y_O`
(原始图片)、
`Y_M`
(虚化,背景马赛克)、
`N`
(不返图) |
**返回值**
|字段名
|类型 |必备 |说明
|
|:-:
|:-: |:-: |:-:
|
|authState |String |是
|人脸检测状态。PROCESSING:初始化;SUCCESS:检测成功;FAIL:检测失败|
|score
|Number |authState为SUCCESS时必备 |活体检测结果分数
|
|quality
|Number |authState为SUCCESS时必备 |人脸图片质量分
|
|base64Photo|String |authState为SUCCESS时必备 |认证图片的base64内容
|
|字段名
|类型 |必备 |说明
|
|:-:
|:-: |:-: |:-:
|
|authState |String |是 |人脸检测状态。PROCESSING:初始化;SUCCESS:检测成功;FAIL:检测失败|
|score
|Number |authState为SUCCESS时必备 |活体检测结果分数
|
|quality
|Number |authState为SUCCESS时必备 |人脸图片质量分
|
|base64Photo|String |authState为SUCCESS时必备 |认证图片的base64内容 |
**示例代码**
...
...
@@ -256,22 +262,22 @@ uni.startFacialRecognitionVerify({
**参数说明**
| 参数
| 类型 | 是否必传| 支持平台 |描述
|
|---
|--- |--- |--- |---
|
| certifyId
| String| 是
| 安卓、iOS |认证流水号,由服务端根据接入的业务模式调用对应的初始化接口获取 |
| progressBarColor
| String| 否 | 安卓、iOS | 刷脸圈的颜色
|
| activityIndicatorColor
| String| 否 | iOS | 网络等待菊花颜色
|
| progressBarBackgroundColor| String| 否
| 安卓 | 刷脸圈的背景颜色
|
| quitAlertTitle
| String| 否 | 安卓 | 刷脸页退出对话框的标题
|
| quitAlertMessage
| String| 否 | 安卓 | 刷脸页退出对话框的内容
|
| timeoutAlertTitle
| String| 否 | 安卓 | 刷脸页超时对话框的标题
|
| timeoutAlertMessage
| String| 否 | 安卓 | 刷脸页超时对话框的内容
|
| failAlertTitle
| String| 否 | 安卓 | 刷脸页错误提示对话框的标题
|
| failAlertMessage
| String| 否 | 安卓 | 刷脸页错误提示对话框的内容
|
| title
| String| 否 | 安卓 | 刷脸圈的颜色
|
| success
| String| 否 | 安卓、iOS | 成功回调
|
| fail
| String| 否 | 安卓、iOS | 失败回调
|
| complete
| String| 否 | 安卓、iOS | 完成回调
|
| 参数
| 类型 | 是否必传 | 支持平台 |描述
|
|---
|--- |--- |--- |---
|
| certifyId
| String| 是
| 安卓、iOS |认证流水号,由服务端根据接入的业务模式调用对应的初始化接口获取 |
| progressBarColor
| String| 否 | 安卓、iOS | 刷脸圈的颜色
|
| activityIndicatorColor
| String| 否 | iOS | 网络等待菊花颜色
|
| progressBarBackgroundColor| String| 否
| 安卓 | 刷脸圈的背景颜色
|
| quitAlertTitle
| String| 否 | 安卓 | 刷脸页退出对话框的标题
|
| quitAlertMessage
| String| 否 | 安卓 | 刷脸页退出对话框的内容
|
| timeoutAlertTitle
| String| 否 | 安卓 | 刷脸页超时对话框的标题
|
| timeoutAlertMessage
| String| 否 | 安卓 | 刷脸页超时对话框的内容
|
| failAlertTitle
| String| 否 | 安卓 | 刷脸页错误提示对话框的标题
|
| failAlertMessage
| String| 否 | 安卓 | 刷脸页错误提示对话框的内容
|
| title
| String| 否 | 安卓 | 刷脸圈的颜色
|
| success
| String| 否 | 安卓、iOS | 成功回调
|
| fail
| String| 否 | 安卓、iOS | 失败回调
|
| complete
| String| 否 | 安卓、iOS | 完成回调
|
注: 颜色值为六位十六进制字符串("#FF0000")
...
...
@@ -296,28 +302,41 @@ cause
**云端错误码**
|错误码 |说明
|
|:-:
|:-:
|
|0
|请求成功
|
|50001 |缺少参数
|
|50002 |参数类型、取值不正确
|
|54003 |appId不存在
|
|54004 |服务空间不在白名单中
|
|54020 |请求记录不存在,certifyId无效
|
|54021 |云函数内缺少接口调用凭证,请联系DCloud处理
|
|54022 |服务空间不存在
|
|55000 |服务器错误,请联系DCloud处理
|
|错误码 |说明 |
|:-:
|:-:
|
|0
|请求成功
|
|50001 |缺少参数 |
|50002 |参数类型、取值不正确 |
|54003 |appId不存在 |
|54004 |服务空间不在白名单中 |
|54020 |请求记录不存在,certifyId无效 |
|54021 |云函数内缺少接口调用凭证,请联系DCloud处理 |
|54022 |服务空间不存在 |
|55000 |服务器错误,请联系DCloud处理 |
|55001 |Api调用失败,实人认证服务商服务不可用,请联系DCloud处理|
|60000 |服务不可用,请联系DCloud处理
|
|60000 |服务不可用,请联系DCloud处理 |
**客户端错误码**
|错误码 |错误信息 |描述 |
|--- |--- |--- |
|0 |刷脸完成 |实际结果需要通过服务端查询接口 |
|10001 |certifyId不能为空|参数certifyId为空 |
|10010 |刷脸异常 |刷脸异常,具体原因详见cause |
|10011 |验证中断 |如用户主动退出、验证超时等,具体原因详见cause |
|10012 |网络异常 |网络异常 |
|10013 |刷脸验证失败 |实际结果需要通过服务端查询结果 |
|10020 |设备设置时间异常 |设备设置时间异常,仅iOS返回 |
|错误码 |错误信息 |描述 |
|--- |--- |--- |
|0 |刷脸完成 |实际结果需要通过服务端查询接口 |
|10001 |certifyId不能为空 |参数certifyId为空 |
|10010 |刷脸异常 |刷脸异常,具体原因详见cause |
|10011 |验证中断 |如用户主动退出、验证超时等,具体原因详见cause |
|10012 |网络异常 |网络异常 |
|10013 |刷脸验证失败 |实际结果需要通过服务端查询结果 |
|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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录