更新记录
1.0.0(2026-11-10)
当前版本 1.0.0(2026-11-10),内置阿里云金融级实人认证 SDK 2.3.54。
- 支持 Android / iOS / HarmonyOS 三端,三端 SDK 二进制已随插件内置
init:初始化 SDK(IPv4 / IPv6),返回 SDK 版本号
getMetaInfo:获取设备 metaInfo,交业务服务端换取 certifyId
verify:用 certifyId 拉起刷脸认证页,回调 code / subCode / message / videoFilePath / faceImage
- 证件 OCR 三端一致:Android / iOS 由 SDK 内置,鸿蒙初始化时自动注册
OcrFeature
- 扩展参数:活体视频、进度颜色、OCR 按钮颜色、语言、取景框大小、水波纹样式、屏幕方向、
extraJson 透传
- 统一错误码
9290001~9290008,认证失败时保留 SDK 原始结果码
平台兼容性
uni-app(4.72)
| Vue2 |
Vue2插件版本 |
Vue3 |
Vue3插件版本 |
Chrome |
Safari |
app-vue |
app-vue插件版本 |
app-nvue |
app-nvue插件版本 |
Android |
Android插件版本 |
iOS |
鸿蒙 |
| √ |
1.0.0 |
√ |
1.0.0 |
× |
× |
√ |
1.0.0 |
√ |
1.0.0 |
5.0 |
1.0.0 |
- |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| × |
× |
× |
× |
× |
× |
× |
× |
× |
- |
× |
× |
uni-app x(4.72)
| Chrome |
Safari |
Android |
Android插件版本 |
iOS |
鸿蒙 |
微信小程序 |
| × |
× |
5.0 |
1.0.0 |
- |
- |
× |
zy-aliyun-verify 阿里云金融级实人认证
支持的功能
阿里云「金融级实人认证(ID Verification)」客户端 SDK 的 UTS 封装,三端 SDK 二进制(2.3.54)已内置在插件目录中,开箱可用。
| 平台 |
最低版本 |
内置 SDK |
| Android |
5.0(API 21) |
11 个 aar(com.alipay.face.api) |
| iOS |
12.0 |
14 个 framework + 8 个 bundle |
| HarmonyOS |
Next 4.1+ / 5.0.0 |
4 个 har(@antdigital/aliyunfacade + 活体 / OCR) |
提供的能力:
- SDK 初始化
init:支持 IPv4 / IPv6,返回 SDK 版本号;须在用户同意隐私政策后调用
- 获取设备信息
getMetaInfo:返回 metaInfo(JSON 字符串),交给业务服务端换取 certifyId
- 发起刷脸认证
verify:用服务端下发的 certifyId 拉起 SDK 认证页
- 证件 OCR:三端均已集成(鸿蒙端初始化时自动
OcrFeature.install() 注册),业务侧无需额外调用
- 扩展参数:活体视频、进度条颜色、OCR 按钮颜色、显示语言、取景框大小、水波纹样式、屏幕方向,另支持
extraJson 原样透传原生参数
- 统一结果:
code / subCode / message / certifyId / videoFilePath / faceImage / rawJson
- 统一错误码:
9290001~9290008,认证失败时仍保留 SDK 原始 code、subCode
使用方法
1. 引入
import { init, getMetaInfo, verify } from '@/uni_modules/zy-aliyun-verify'
2. 整体流程
App 业务服务端 阿里云
|-- init() -------------------| |
|-- getMetaInfo() ----------->| |
| |-- InitFaceVerify(metaInfo, 姓名, 证件号) -->|
|<-------- certifyId ---------| |
|-- verify(certifyId) -----------------------------------> | 刷脸页
|<------------- code / subCode --------------------------- |
| |-- DescribeFaceVerify -----> | 最终结果
姓名、证件号、AccessKey、服务端签名参数等敏感信息严禁放在客户端。
3. init(options)
init({
ipv6: false,
success: (res) => console.log('初始化成功', res.sdkVersion),
fail: (err) => console.error(err.errCode, err.errMsg)
})
| 参数 |
类型 |
必填 |
说明 |
| ipv6 |
boolean |
否 |
是否使用 IPv6 网络初始化,默认 false |
| success |
function |
否 |
{ code, message, sdkVersion } |
| fail |
function |
否 |
见「错误码」 |
| complete |
function |
否 |
成功 / 失败都会回调 |
4. getMetaInfo(options)
getMetaInfo({
autoInit: true,
success: (res) => {
// res.metaInfo 上传到业务服务端,换取 certifyId
},
fail: (err) => console.error(err.errCode, err.errMsg)
})
| 参数 |
类型 |
必填 |
说明 |
| autoInit |
boolean |
否 |
未初始化时是否自动先初始化,默认 true |
| ipv6 |
boolean |
否 |
autoInit 生效时的初始化方式,默认 false |
| success |
function |
否 |
{ code, message, metaInfo } |
5. verify(options)
verify({
certifyId: '服务端返回的 certifyId',
useMessageBox: true,
extParams: { useVideo: true, faceCircleSize: 'M' },
success: (res) => {
// 仅代表采集流程成功,最终结果需服务端查询
console.log(res.code, res.subCode, res.videoFilePath)
},
fail: (err) => {
console.error(err.errCode, err.code, err.subCode, err.errMsg)
}
})
| 参数 |
类型 |
必填 |
说明 |
| certifyId |
string |
是 |
服务端 InitFaceVerify 返回的认证 ID,一次性使用 |
| useMessageBox |
boolean |
否 |
SDK 内部出错是否先弹框提示(Android / Harmony 有效),默认 true |
| extParams |
object |
否 |
扩展参数,见下表 |
| success |
function |
否 |
SDK 返回 1000 时回调 |
| fail |
function |
否 |
认证失败 / 用户取消 / 参数错误 |
extParams
| 字段 |
类型 |
说明 |
Android |
iOS |
Harmony |
| useVideo |
boolean |
返回活体认证视频 |
✔ |
✔ |
✔ |
| screenOrientation |
string |
portrait / landscape(鸿蒙对应「强制竖屏」开关) |
✔ |
- |
✔ |
| progressColor |
string |
进度条 / 圆环颜色,如 #FF0000 |
✔ |
✔ |
✔ |
| ocrButtonColor |
string |
OCR 结果页按钮颜色 |
✔ |
- |
✔ |
| language |
string |
自定义语言 |
✔ |
✔ |
✔ |
| waveAnimateClose |
boolean |
关闭水波纹 loading |
✔ |
✔ |
✔ |
| faceCircleSize |
string |
取景框大小 S / M / L |
✔ |
✔ |
✔ |
| extraJson |
string |
额外原生参数 JSON,原样透传 |
✔ |
✔ |
✔ |
成功结果
| 字段 |
类型 |
说明 |
| code |
number |
固定 1000 |
| subCode |
string |
子结果码,如 Z5120 |
| message |
string |
结果描述 |
| certifyId |
string |
本次认证 ID |
| videoFilePath |
string |
活体视频本地路径(useVideo=true 时),可能为空 |
| faceImage |
string |
人脸底图(Harmony 返回 base64 data url),其他平台为空 |
| rawJson |
string |
平台原生完整结果 JSON |
6. 错误码
| errCode |
说明 |
| 9290001 |
参数错误(certifyId 为空等) |
| 9290002 |
获取上下文失败(请在页面 onLoad 之后调用) |
| 9290003 |
SDK 初始化失败 |
| 9290004 |
SDK 未初始化,请先调用 init |
| 9290005 |
获取 metaInfo 失败 |
| 9290006 |
认证失败 / 用户取消(看 code、subCode) |
| 9290007 |
当前平台不支持 |
| 9290008 |
调用 SDK 异常 |
SDK 常见结果码:1000 采集成功(仅供参考,是否计费:是)、1001 系统错误、1003 验证中断、2002 网络错误、2003 设备时间错误、2006 认证未通过。
常用子码:Z1008 用户退出、Z1013 活体不通过、Z1019 摄像头权限未赋予、Z1036 未调用 install、Z1037 certifyId 为空、Z5120 认证通过、Z5128 认证未通过。
7. 使用注意
certifyId 一次性使用,每次认证前必须由服务端重新获取;
success 的 1000 只代表采集成功,最终结论以服务端 DescribeFaceVerify 为准;
metaInfo 必须用真机真实数据,禁止硬编码或跨设备复用;
- Android 拉起认证前需已授予
CAMERA 权限;iOS 首次由系统弹窗申请;
- 三端均不支持模拟器,必须用自定义基座调试;
- iOS 自定义基座 / 云打包需带
-ObjC 链接参数;
- 三端 OCR 能力一致:Android / iOS 由 SDK 内置模块提供,鸿蒙在初始化时自动调用
OcrFeature.install() 注册,业务侧都无需额外调用;若删除 utssdk/app-harmony/libs/ocrverify.har,鸿蒙端将无法走证件识别流程;
screenOrientation、ocrButtonColor 在 iOS 端不生效(iOS SDK 未提供对应参数),其余扩展参数三端一致;
- NFC 读卡能力仅 Android(
aliyun-nfc)与 iOS(DTFNFCIdentityManager)具备,鸿蒙 SDK 未提供 NFC har,认证方案里若配置 NFC 采集,鸿蒙端不支持。