'use strict';
exports.main = async (event, context) => {
	//返回数据给客户端
	let result = null
	if (event.action === 'getFacialRecognitionMetaInfo') {
		const frvManager = uniCloud.getFacialRecognitionVerifyManager({
			requestId: context.requestId
		})
		result = await frvManager.getCertifyId({
			idCard: event.idCard,
			realName: event.realName,
			metaInfo: event.metaInfo
		})
	}
	if (event.action === 'getAuthResult') {
		const frvManager = uniCloud.getFacialRecognitionVerifyManager({
			requestId: context.requestId
		})
		result = await frvManager.getAuthResult({
			certifyId: event.certifyId
		})
	}
	return result
};
<template>
	<view>
		<view class="" style="height: 100rpx;" @click="get">
			获取认证信息
		</view>
		<view class="mt16" style="height: 100rpx;" @click="renzheng">
			认证
		</view>
		<view class="mt16" style="height: 100rpx;" @click="getResult">
			获取结果
		</view>
	</view>
</template>

<script setup>
	import {
		ref
	} from 'vue'
	const certifyId = ref('')
	const get = () => {
		const metaInfo = uni.getFacialRecognitionMetaInfo();
		console.log(metaInfo); // 打印人脸识别元信息
		uniCloud.callFunction({
			name: 'gxVerifyLogin',
			data: {
				action: 'getFacialRecognitionMetaInfo',
				realName: '姓名',
				idCard: '身份证',
				metaInfo,
				// needPicture	Boolean	否	false	是否需要采集用户照片
				// model 要进行活体检测的类型:LIVENESS(默认):眨眼动作活体检测,MULTI_ACTION:多动作活体检测。当前为眨眼+任意摇头检测
			}
		}).then((res) => {
			console.log('res', res)
			console.log('certifyId', res?.result.certifyId)
			certifyId.value = res?.result?.certifyId || ''
		}).catch((res) => {
			console.log('res2', res)
		})
	}
	const renzheng = () => {
		console.log('认证'); // 打印认证信息
		if (certifyId.value) {
			uni.startFacialRecognitionVerify({
				certifyId: certifyId.value,
				progressBarColor: "#CC0000", //刷脸圈的颜色
				screenOrientation: "port", //认证界面UI朝向
				success: (e) => {
					console.log(e, 'success')
					setTimeout(() => {
						getResult()
					}, 1000)
				},
				fail: (e) => {
					console.log(e, 'fail')
				},
				complete: (e) => {
					console.log(e, 'complete')
				}
			})
		}

	}
	const getResult = () => {
		if (certifyId.value) {
			uniCloud.callFunction({
				name: 'gxVerifyLogin',
				data: {
					action: 'getAuthResult',
					certifyId: certifyId.value,
				}
			}).then((res) => {
				/*
				"result": {
						"errCode": 0,
						"errMsg": "",
						"authState": "SUCCESS",
						"qualityScore": 80.59619903564453,
						"verifyScore": 97.68528288363457
				}*/
				console.log('res', res)
			}).catch((res) => {
				console.log('res2', res)
			})
		}
	}
</script>

<style>

</style>

Logo

网易易盾是国内领先的数字内容风控服务商,依托网易二十余年的先进技术和一线实践经验沉淀,为客户提供专业可靠的安全服务,涵盖内容安全、业务安全、应用安全、安全专家服务四大领域,全方位保障客户业务合规、稳健和安全运营。

更多推荐