You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP zklib管理ZK考勤机时如何触发设备采集用户指纹并绑定

基于PHP ZKlib实现ZK考勤机远程指纹采集绑定操作指南
  • 首先完成前置校验:确认你已经通过CMD_USER_WRQ指令将用户基础信息成功写入设备,且已获取到该用户在考勤机内部的唯一整数ID(注意区分自定义工号和设备内部用户ID,部分设备二者可以一致,但需以设备内存储的ID为准),写入后可调用用户查询接口确认用户存在,避免后续绑定失败。
  • 发送远程采集触发指令:使用CMD_STARTENROLL指令触发设备进入采集状态,指令需要携带3个参数:目标用户的设备内部ID、指纹序号(单个用户最多支持10枚指纹,序号范围0-9)、采集超时时间(单位秒,建议设置15-30)。参考代码示例:
// $zk 为已完成连接认证的ZKlib实例
$user_internal_id = 1003; // 刚才新增用户的设备内部ID
$finger_index = 0; // 本次采集为该用户的第1枚指纹
$timeout = 30; // 30秒超时未完成采集自动退出

// 构造指令发送,若你的ZKlib未封装该指令,可手动传入指令码1002(0x3EA)
$response = $zk->sendCommand(1002, pack('SSS', $user_internal_id, $finger_index, $timeout));
  • 等待用户完成采集:指令发送成功后,设备会自动跳转到指纹采集界面,屏幕会提示用户放置手指,通常需要连续放置3次完成指纹录入,整个过程不需要额外代码干预,设备会自动处理:
    • 采集成功时设备会返回成功状态码,指纹模板会自动和对应用户ID绑定存储,无需额外操作
    • 采集失败(超时、手指放置不规范、指纹重复)时设备会返回对应错误码,可根据错误码引导用户重新触发采集
  • 验证绑定结果:采集完成后,可调用CMD_USERTEMP_RRQ指令读取该用户的指纹模板列表,确认对应序号的指纹模板是否存在,判断操作是否成功。参考代码:
// 获取指定用户的所有指纹模板
$finger_templates = $zk->getUserTemplates($user_internal_id);
if(isset($finger_templates[$finger_index]) && !empty($finger_templates[$finger_index])){
    // 指纹采集绑定成功
}

注意:部分早期型号的ZK考勤机不支持远程触发指纹采集功能,仅支持本地设备端操作录入,若发送指令后设备无响应,可查阅对应设备的官方开发手册确认是否支持该功能。若你使用的ZKlib版本没有封装指纹采集相关方法,可手动补充CMD_STARTENROLL指令码1002即可调用。

内容的提问来源于stack exchange,提问作者Munawir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:57:03