简体中文
uni实人认证是DCloud与合作伙伴共同推出的金融级实人认证服务,通过对比人脸、活体检测、姓名和身份证号码,来确认用户身份的有效性。
实人认证涉及业务开通和付费,涉及客户端和服务器交互,有较多文档:
uni-id-pages,已经内置实人认证,从云端到客户端均已开发好并开源,推荐使用。详情
获取阿里云实人认证meta info
类型 |
---|
string |
Android | iOS | web |
---|---|---|
3.9 | 4.11 | - |
启动人脸识别
名称 | 类型 | 必填 | 默认值 | 描述 | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
faceStyle | StartFacialRecognitionVerifyOptions | 是 | - | - | |||||||||||||||||||||||||||||||||||
|
名称 | 类型 | 必备 | 默认值 | 描述 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
errCode | number | 是 | - | 错误码 | ||||||||||||||||||||||||||||||
errSubject | string | 是 | - | 调用API的名称 | ||||||||||||||||||||||||||||||
errMsg | string | 是 | - | 错误的详细信息 | ||||||||||||||||||||||||||||||
cause | SourceError | 否 | - | 错误来源 | ||||||||||||||||||||||||||||||
|
名称 | 类型 | 必备 | 默认值 | 描述 |
---|---|---|---|---|
errCode | 10010 | 10012 | 10011 | 10013 | 10020 | 10001 | 10002 | 是 | - | 错误码 - 10001 certifyId 不能为空 - 10002 "当前设备不支持" - 10010 刷脸异常 - 10012 网络异常 - 10011 验证中断 - 10013 刷脸验证失败 - 10020 设备设置时间异常 |
errSubject | string | 是 | - | 统一错误主题(模块)名称 |
data | any | null | 否 | - | 错误信息中包含的数据 |
cause | Error | null | 否 | - | 源错误信息,可以包含多个错误,详见SourceError |
errMsg | string | 是 | - | - |
Android | iOS | web | |
---|---|---|---|
screenOrientation | 3.9 | 4.11 | - |
Android | iOS | web |
---|---|---|
3.9 | 4.11 | - |
<template>
<!-- #ifdef APP -->
<scroll-view class="page-scroll-view">
<!-- #endif -->
<view>
<page-head :title="title"></page-head>
<view class="uni-padding-wrap uni-common-mt">
<view class="uni-btn-v uni-common-mt">
<input class="uni-input" type="text" v-model="realName" name="real-name"
placeholder="姓名" maxlength="-1"/>
</view>
<view class="uni-btn-v uni-common-mt">
<input class="uni-input" type="text" v-model="idCard" name="id-card"
placeholder="身份证号" maxlength="-1"/>
</view>
<view class="uni-btn-v uni-common-mt">
<button type="primary" @click="facialRecognition">开始人脸识别</button>
</view>
</view>
</view>
<!-- #ifdef APP -->
</scroll-view>
<!-- #endif -->
</template>
<script>
export default {
data() {
return {
title: '实人认证',
realName: '',
idCard: ''
}
},
onReady() {
},
methods: {
facialRecognition() {
const realName = this.realName.trim()
const idCard = this.idCard.trim()
if (realName == '' || idCard == '') {
uni.showModal({
title: '错误',
content: '姓名和身份证号不可为空',
showCancel: false
})
return
}
const testFacialCo = uniCloud.importObject('facial-recognition-co')
let metaInfo = uni.getFacialRecognitionMetaInfo();
testFacialCo.getCertifyId({
realName,
idCard,
metaInfo
})
.then((res : UTSJSONObject) : Promise<string> => {
const certifyId = res['certifyId'] as string
return new Promise((
resolve : (res : string) => void,
reject : (err : Error) => void
) => {
uni.startFacialRecognitionVerify({
certifyId,
success() {
resolve(certifyId)
},
fail(err) {
reject(new Error(err.errMsg))
}
})
})
})
.then((certifyId : string) : Promise<UTSJSONObject> => {
return testFacialCo.getAuthResult(certifyId)
})
.then((res : UTSJSONObject) => {
console.log('res', res)
})
.catch((err : any | null) => {
console.error('error', err)
})
}
}
}
</script>
<style>
</style>
名称 | 类型 | 必备 | 默认值 | 描述 |
---|---|---|---|---|
errMsg | string | 是 | - | 错误信息 |
armeabi-v7a
和arm64-v8a
,其他CPU类型设备调用uni.getFacialRecognitionMetaInfo()
会返回空字符串,调用uni.startFacialRecognitionVerify()
会触发错误码为10002
的错误回调。