# 实人认证-活体检测-人脸核身 uniapp-demo **Repository Path**: eshunda/uniapp-demo ## Basic Information - **Project Name**: 实人认证-活体检测-人脸核身 uniapp-demo - **Description**: 实人认证-活体检测-人脸核身 Uniapp demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: https://face.eshunda.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-25 - **Last Updated**: 2025-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
人脸核身技术Banner
## 产品预览
人脸核身产品效果

人脸核身产品效果图

本项目基于 uni-app,集成了易顺达活体检测能力,并演示了两种认证流程: - 活体检测(liveness) - 实人认证(real:姓名+身份证号+刷脸) ## 目录结构 - `pages/index/index.vue` 首页,产品选择入口 - `pages/verify/index.vue` 统一认证页(根据 type 区分调用不同商品) - `pages/real-auth/index.vue` 实人认证信息填写页(姓名+身份证号) - `pages/result/index.vue` 结果页 - `uni_modules/eshunda-liveness` 易顺达活体 SDK 模块 ## 运行与构建 1. 使用 HBuilderX 打开项目目录(建议版本 ≥ 3.1.0) 2. 从云市场导入插件到本项目(见下文“从云市场导入插件”) 3. 在项目根目录双击打开 `manifest.json` 4. 切换到“基础配置”页签,找到“应用标识(AppID)” 5. 制作自定义调试基座(必须,包含 UTS 插件): - 在 HBuilderX 顶部菜单:运行 → 运行到手机或模拟器 → 制作自定义基座 - 选择 Android 平台,勾选包含 UTS 插件/uni_modules - 生成完成后,将该基座安装到测试设备 6. 使用“运行到自定义基座”将项目运行到已安装的自定义基座 7. 首次运行建议真机调试,确保相机权限正常 提示:如未使用自定义基座,UTS 插件无法生效,可能导致活体 SDK 不可用。 ## 必要配置 在 `pages/verify/index.vue` 中设置 APPCODE: ```ts // pages/verify/index.vue const APPCODE = '替换为你的appcode' ``` 获取方式: - 购买或试用云市场产品后,进入控制台(`https://marketnext.console.aliyun.com/bizlist`)查看 APPCODE。 ## 页面路由 在 `pages.json` 已注册: - `pages/index/index` 首页 - `pages/verify/index` 认证页 - `pages/result/index` 结果页 - `pages/real-auth/index` 实人认证信息页 首页跳转逻辑(已内置): - 活体检测:`/pages/verify/index?type=liveness` - 实人认证:`/pages/real-auth/index` → 填写信息后跳 `verify` 并携带参数 ## 实人认证接口 已按您的要求切换: - 初始化获取 Token:`https://esdrp.market.alicloudapi.com/getToken` - 认证核验:`https://esdrp.market.alicloudapi.com/verify` 请求格式均为 `application/x-www-form-urlencoded`,项目内的 `post` 方法已统一转码: ```ts const post = (url: string, data: any) => new Promise((resolve, reject) => { const formData = Object.keys(data) .map(k => `${encodeURIComponent(k)}=${encodeURIComponent(data[k])}`) .join('&') uni.request({ url, method: 'POST', data: formData, header: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Authorization': 'APPCODE ' + APPCODE, 'X-Ca-Nonce': uuid() }, success: res => { /* ... */ }, fail: reject }) }) ``` ## 认证类型说明(verify 页面) `/pages/verify/index.vue` 会根据 `type` 参数选择不同流程: - `liveness`:活体检测 - 获取 Token:`https://fake.market.alicloudapi.com/getToken` - 验证接口:`https://fake.market.alicloudapi.com/verify` - `real`:实人认证 - 获取 Token:`https://esdrp.market.alicloudapi.com/getToken` - 验证接口:`https://esdrp.market.alicloudapi.com/verify` 从 `real-auth` 页面会传递: - `name`(姓名) - `idNumber`(身份证号) verify 页面会在初始化与核验接口中按需带上对应参数。 ## 从云市场导入插件 请从 DCloud 插件市场导入易顺达活体检测插件: - 插件地址:[`https://ext.dcloud.net.cn/plugin?id=24865`](https://ext.dcloud.net.cn/plugin?id=24865) 步骤: 1. 打开 HBuilderX(建议 3.1.0+ 版本) 2. 访问插件市场链接,点击“下载插件并导入 HBuilderX” 3. 在 HBuilderX 中选择当前项目导入,插件会以 `uni_modules/eshunda-liveness` 形式落地 4. App 端需制作自定义调试基座(含 UTS 插件),然后运行到 Android 设备 5. 在 `main.js` 或首页初始化位置调用: ```ts import { init } from '@/uni_modules/eshunda-liveness' init() ``` 6. 在认证页使用: ```ts import { verifyInit, startLivingDetect } from '@/uni_modules/eshunda-liveness' const { code, data } = await verifyInit({ livingType: 2 }) // 向服务端换取 token 后 const ret = await startLivingDetect(token) ``` 注意: - 该插件为端云结合方案,需配合服务端接口完成 token 获取与云端核验 - Android 需开启相机权限 - 若报 `X-Ca-Error-Message`,请检查 APPCODE 与请求参数 ## 常见 UI 调整点 - 开始认证按钮(verify 页面): - 宽度:已设为 `75%` 居中(`.primary { width: 75%; margin: 0 auto; }`) - 字体、圆角、内边距均可在同一处样式修改 - 首页卡片按钮宽度:已设为 `80%` 居中(`.card-btn { width: 80%; }`) - 标题居中:`.header-title { text-align: center; }` ## 调试建议 - 若阿里云返回异常,通常错误详情在响应 `header` 的 `X-Ca-Error-Message` 字段 - 请确保设备相机权限、网络权限已开启 - 真机环境下体验更接近真实场景 ## 安全与合规 - APPCODE 和用户敏感信息请勿硬编码到公网仓库 - 生产环境请通过您自有服务器中转请求并签名校验 ## 免责声明 本 Demo 仅用于功能演示,生产环境需做完整的异常处理、日志留存、鉴权与安全加固。 ## 许可声明 本项目为商业产品演示代码,版权所有。 **使用限制:** - 仅供学习和演示用途 - 禁止商业使用和分发 - 禁止修改后用于生产环境 - 如需商业授权,请联系开发团队 --- **注意事项:** - 本项目仅为演示用途,生产使用请根据实际需求进行安全加固 - API调用产生的费用请参考产品定价 - 建议定期更新依赖版本以确保安全性