Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
034d72c0
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3598
Star
108
Fork
921
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
120
列表
看板
标记
里程碑
合并请求
109
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
120
Issue
120
列表
看板
标记
里程碑
合并请求
109
合并请求
109
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
034d72c0
编写于
2月 22, 2023
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: update uniCloud frv
上级
4dfbb220
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
102 addition
and
100 deletion
+102
-100
docs/uniCloud/frv/dev.md
docs/uniCloud/frv/dev.md
+102
-100
未找到文件。
docs/uniCloud/frv/dev.md
浏览文件 @
034d72c0
...
...
@@ -8,10 +8,11 @@ uni实人认证服务,分前端api和云端api,云端为uniCloud API。
在uni-app客户端和uniCloud云函数中调用如下api,实现下图流程:
-
客户端获取metaInfo:
[
uni.getFacialRecognitionMetaInfo
](
#get-meta-info
)
-
客户端调起sdk刷脸认证:
[
uni.startFacialRecognitionVerify()
](
#start-frv
)
-
云函数获取实人认证实例:
[
uniCloud.getFacialRecognitionVerifyManager()
](
#get-frv-manager
)
-
云函数提交姓名、身份证号以获取认证服务的certifyId:
[
frvManager.getCertifyId()
](
#get-certify-id
)
-
云函数使用certifyId获取认证结果:
[
frvManager.getAuthResult()
](
#get-auth-result
)
-
客户端调起sdk刷脸认证:
[
uni.startFacialRecognitionVerify()
](
#start-frv
)
完整认证流程如下:
...
...
@@ -20,17 +21,18 @@ sequenceDiagram
actor user as 用户端
participant cf as 云函数/云对象
participant service as 认证服务
user->>+cf: 1.1 上传姓名、身份证号获取certifyId
activate user
cf->>+service: 2.1 提交姓名、身份证号获取certifyId
service-->>-cf: 2.2 返回certifyId
cf-->>-user: 1.2 返回certifyId
user->>+service: 3.1 调用sdk进行刷脸认证
service-->>-user: 3.2 返回认证结果
user->>+cf: 4.1 请求更新认证结果
cf->>+service: 5.1 请求认证结果
service-->>-cf: 5. 返回认证结果
cf-->>-user: 4.2 入库更新用户认证信息并返回认证成功
user->>+user: 获取设备信息metaInfo
user->>+cf: 提交姓名、身份证号、metaInfo获取certifyId
cf->>+service: 提交姓名、身份证号、metaInfo获取certifyId
service-->>-cf: 返回certifyId
cf-->>-user: 返回certifyId
user->>+service: 调用sdk进行刷脸认证
service-->>-user: 返回认证结果
user->>+cf: 请求校验认证结果
cf->>+service: 请求认证结果
service-->>-cf: 返回认证结果
cf-->>-user: 返回最终实人认证结果
deactivate user
```
...
...
@@ -42,6 +44,89 @@ sequenceDiagram
由于实人认证涉及费用,为避免其他人盗刷您的余额,您应当谨慎编码,防止漏洞。一般可以通过一个用户每天限制实名次数来实现防刷,未登录用户禁止调用认证接口。如果有更高的安全需求可以使用uni安全网络,可以有效防止伪造客户端请求,
[
详见
](
../secure-network.md
)
### 客户端接口
#### 获取设备信息@get-meta-info
调用刷脸前通过客户端先获取设备信息,调用
[
uni.getFacialRecognitionMetaInfo
](
https://uniapp.dcloud.net.cn/api/plugins/facialRecognitionVerify.html
)
`const metaInfo = uni.getFacialRecognitionMetaInfo();`
#### 调起实人认证界面@start-frv
通过云函数获取certifyId后,在客户端调用
[
uni.startFacialRecognitionVerify
](
https://uniapp.dcloud.net.cn/api/plugins/facialRecognitionVerify.html
)
打开认证界面,通过刷脸操作获取认证结果。
`uni.startFacialRecognitionVerify(OBJECT)`
**注意**
*
HBuilderX3.7.2+新增支持
*
App端需在“App模块配置”中勾选“FacialRecognitionVerify(实人认证)”,参考
[
详情
](
https://uniapp.dcloud.net.cn/tutorial/app-facialRecognitionVerify.html
)
*
App端使用蚂蚁金服人脸认证SDK,需在隐私政策的三方SDK中添加实人认证功能描述,参考
[
详情
](
https://ask.dcloud.net.cn/article/39484#FacialRecognitionVerify
)
*
App-Android平台要求Android5(API Leavel 21)及以上系统
*
App-iOS平台要求iOS9及以上系统
**示例**
```
js
uni
.
startFacialRecognitionVerify
({
certifyId
:
""
,
progressBarColor
:
"
#CC0000
"
,
//刷脸圈的颜色
screenOrientation
:
"
port
"
,
//认证界面UI朝向
success
:(
e
)
=>
{
console
.
log
(
JSON
.
stringify
(
e
))
},
fail
:(
e
)
=>
{
console
.
log
(
JSON
.
stringify
(
e
))
},
complete
:(
e
)
=>
{
console
.
log
(
JSON
.
stringify
(
e
))
}
})
```
##### OBJECT参数说明
| 参数 | 类型 | 是否必传 | 支持平台 | 描述 |
| --- | --- | --- | --- | --- |
| certifyId | String | 是 | App | 认证流水号,由服务端根据接入的业务模式调用对应的初始化接口获取 |
| progressBarColor | String | 否 | App | 刷脸圈的颜色 |
| screenOrientation | String | 否 | App-Android | 认证界面UI朝向。port 为竖屏,land 为横屏,默认为 port|
| success | Function | 否 | App | 成功回调 |
| fail | Function | 否 | App | 失败回调 |
| complete | Function | 否 | App | 完成回调 |
注: 颜色字符串格式为“#RRGGBB”,RRGGBB为十六进制字符串,如红色("#FF0000")
##### CALLBACK返回值
| 参数 | 描述 |
| --- | --- |
| errSubject | 模块名称(uni-facialRecognitionVerify) |
| errCode | 错误码,详情见:
[
错误码
](
#err-code
)
|
| errMsg | 错误信息,详情见:
[
错误码
](
#err-code
)
|
| cause | SDK返回的原始数据 (certifyId不为空时返回) |
##### cause
| 参数 | 描述 |
| --- | --- |
| code | SDK原始错误码 |
| message | SDK原始错误信息 |
#### iOS平台自定义UI
iOS平台不支持通过参数的方式修改刷脸页的提示文案,但可以通过自定义bundle文件的方式修改提示内容以及国际化信息
[
APBToygerFacade.bundle文件下载
](
https://native-res.dcloud.net.cn/uni-app/file/APBToygerFacade.zip
)
首先需要下载APBToygerFacade.bundle文件,可通过修改APBToygerFacade.bundle中的内容自定义多语言文案,如 zh-Hans.strings 代表中文文案,en.strings 代表英文文案,内容格式为 "APBToygerFacade:xxxA"="xxxB",xxxA 为目标修改文案,xxxB 为修改后的文案,示例内容如下:
```
"APBToygerFacade:xxxA"="xxxB";
"APBToygerFacade:当前设备不支持刷脸"="当前设备不支持刷脸";
"APBToygerFacade:拿起手机眨眨眼"="拿起手机,眨眨眼";
"APBToygerFacade:再试一次"="再试一次";
"APBToygerFacade:无法启动相机"="无法打开相机";
"APBToygerFacade:网络不给力"="网络异常";
```
此处文案修改后需要完整测试回归 UI 以及文案变化影响,以免影响用户体验。修改后的bundle文件配到项目根目录的 nativeResources -> ios -> Resources 路径下后打包即可,详情参照
[
iOS原生应用配置文件和资源
](
https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html
)
### 云函数接口
实人认证相关接口由uni-cloud-verify扩展库提供,调用
`uniCloud.getFacialRecognitionVerifyManager()`
需云函数/云对象中加载对应的扩展库。
[
参考
](
../cf-functions.md#extension
)
...
...
@@ -60,10 +145,10 @@ uniCloud.getFacialRecognitionVerifyManager(Object GetFacialRecognitionVerifyMana
**Object GetFacialRecognitionVerifyManagerParam**
|属性 |类型 |必填 |默认值 |说明
|
|:-: |:-: |:-: |:-: |:-:
|
|requestId|String |是 |- |本次云函数请求的requestId
,用于接口内部获取当前应用appId及客户端ip信息
|
|appId |String |否 |- |用于在url化等无法获取客户端信息的场景下传入客户端appId
|
|属性 |类型 |必填 |默认值 |说明 |
|:-: |:-: |:-: |:-: |:-: |
|requestId|String |是 |- |本次云函数请求的requestId
|
|appId |String |否 |- |用于在url化等无法获取客户端信息的场景下传入客户端appId |
**返回值**
...
...
@@ -111,8 +196,8 @@ frvManager.getCertifyId(Object GetCertifyIdParam)
|:-: |:-: |:-: |:-: |:-: |
|realName |String |是 |- |用户真实姓名 |
|idCard |String |是 |- |用户身份证号 |
|metaInfo |String |是 |- |客户端
初始化时
返回的metaInfo |
|needPicture|Boolean|否 |
-
|是否需要采集用户照片 |
|metaInfo |String |是 |- |客户端
获取设备信息
返回的metaInfo |
|needPicture|Boolean|否 |
false
|是否需要采集用户照片 |
**返回值**
...
...
@@ -248,89 +333,6 @@ module.exports = {
}
```
### 客户端接口
#### 获取设备信息
调用刷脸前通过客户端先获取设备信息,调用
[
uni.getFacialRecognitionMetaInfo
](
https://uniapp.dcloud.net.cn/api/plugins/facialRecognitionVerify.html
)
`const metaInfo = uni.getFacialRecognitionMetaInfo();`
#### 调起实人认证界面@start-frv
通过云函数获取certifyId后,在客户端调用
[
uni.startFacialRecognitionVerify
](
https://uniapp.dcloud.net.cn/api/plugins/facialRecognitionVerify.html
)
打开认证界面,通过刷脸操作获取认证结果。
`uni.startFacialRecognitionVerify(OBJECT)`
**注意**
*
HBuilderX3.7.2+新增支持
*
App端需在“App模块配置”中勾选“FacialRecognitionVerify(实人认证)”,参考
[
详情
](
https://uniapp.dcloud.net.cn/tutorial/app-facialRecognitionVerify.html
)
*
App端使用蚂蚁金服人脸认证SDK,需在隐私政策的三方SDK中添加实人认证功能描述,参考
[
详情
](
https://ask.dcloud.net.cn/article/39484#FacialRecognitionVerify
)
*
App-Android平台要求Android5(API Leavel 21)及以上系统
*
App-iOS平台要求iOS9及以上系统
**示例**
```
js
uni
.
startFacialRecognitionVerify
({
certifyId
:
""
,
progressBarColor
:
"
#CC0000
"
,
//刷脸圈的颜色
screenOrientation
:
"
port
"
,
//认证界面UI朝向
success
:(
e
)
=>
{
console
.
log
(
JSON
.
stringify
(
e
))
},
fail
:(
e
)
=>
{
console
.
log
(
JSON
.
stringify
(
e
))
},
complete
:(
e
)
=>
{
console
.
log
(
JSON
.
stringify
(
e
))
}
})
```
##### OBJECT参数说明
| 参数 | 类型 | 是否必传 | 支持平台 | 描述 |
| --- | --- | --- | --- | --- |
| certifyId | String | 是 | App | 认证流水号,由服务端根据接入的业务模式调用对应的初始化接口获取 |
| progressBarColor | String | 否 | App | 刷脸圈的颜色 |
| screenOrientation | String | 否 | App-Android | 认证界面UI朝向。port 为竖屏,land 为横屏,默认为 port|
| success | Function | 否 | App | 成功回调 |
| fail | Function | 否 | App | 失败回调 |
| complete | Function | 否 | App | 完成回调 |
注: 颜色字符串格式为“#RRGGBB”,RRGGBB为十六进制字符串,如红色("#FF0000")
##### CALLBACK返回值
| 参数 | 描述 |
| --- | --- |
| errSubject | 模块名称(uni-facialRecognitionVerify) |
| errCode | 错误码,详情见:
[
错误码
](
#err-code
)
|
| errMsg | 错误信息,详情见:
[
错误码
](
#err-code
)
|
| cause | SDK返回的原始数据 (certifyId不为空时返回) |
##### cause
| 参数 | 描述 |
| --- | --- |
| code | SDK原始错误码 |
| message | SDK原始错误信息 |
#### iOS平台自定义UI
iOS平台不支持通过参数的方式修改刷脸页的提示文案,但可以通过自定义bundle文件的方式修改提示内容以及国际化信息
[
APBToygerFacade.bundle文件下载
](
https://native-res.dcloud.net.cn/uni-app/file/APBToygerFacade.zip
)
首先需要下载APBToygerFacade.bundle文件,可通过修改APBToygerFacade.bundle中的内容自定义多语言文案,如 zh-Hans.strings 代表中文文案,en.strings 代表英文文案,内容格式为 "APBToygerFacade:xxxA"="xxxB",xxxA 为目标修改文案,xxxB 为修改后的文案,示例内容如下:
```
"APBToygerFacade:xxxA"="xxxB";
"APBToygerFacade:当前设备不支持刷脸"="当前设备不支持刷脸";
"APBToygerFacade:拿起手机眨眨眼"="拿起手机,眨眨眼";
"APBToygerFacade:再试一次"="再试一次";
"APBToygerFacade:无法启动相机"="无法打开相机";
"APBToygerFacade:网络不给力"="网络异常";
```
此处文案修改后需要完整测试回归 UI 以及文案变化影响,以免影响用户体验。修改后的bundle文件配到项目根目录的 nativeResources -> ios -> Resources 路径下后打包即可,详情参照
[
iOS原生应用配置文件和资源
](
https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html
)
### 错误码@err-code
**云端错误码**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录