kwikkoders/zkteco-sdk

ZKLibrary 是用于 ZK 时间和考勤设备的 PHP 库

dev-master 2022-05-21 20:45 UTC

This package is auto-updated.

Last update: 2024-09-22 01:38:36 UTC


README

此包提供简单易用的函数,用于通过 laravel 框架与 ZKTeco 设备活动交互。

要求: Laravel >= 5.0

许可证: MIT

关于 SDK

laravel ZKLibrary 是用于 ZK 时间和考勤设备的 PHP 库。此库旨在通过 UDP 协议读取和写入考勤设备(指纹、面部识别或 RFID)的数据。此库可以直接在 Web 服务器和考勤设备之间通信,无需任何额外的程序。此库采用类形式实现,因此您可以创建一个对象并使用其功能。

Web 服务器必须通过局域网 (LAN) 连接到考勤设备。此通信中使用的 UDP 端口为 4370。您不能更改此端口,除非更改考勤设备的固件。因此,您只需使用它即可。

数据格式为:二进制、字符串和数字。参数和返回值的长度必须不同。

此包与 Laravel 5.* 6.* 7.* 8.* 兼容

安装

首先通过 Composer 安装此包。只需在终端中运行以下命令即可-

composer require KwikKoders/zkteco-sdk

此操作完成后,最后一步是添加服务提供者。打开 config/app.php,并将新项目添加到 providers 数组中。

'providers' => [

        // .........................
        KwikKoders\Zkteco\ZktecoServiceProvider::class,

    ]

如果您想更改 Zkteco 设置,您需要发布其配置文件。为此,您需要在终端中设置 IP 地址-

php artisan vendor:publish

用法

创建 ZktecoLib 类的对象。
    use KwikKoders\Zkteco\Http\Library\ZktecoLib;

//  1 s't parameter is string $ip Device IP Address
//  2 nd  parameter is integer $port Default: 4370

    $zk = new ZktecoLib(config('zkteco.ip'));

//  or you can use with port
//    $zk = new ZktecoLib(config('zkteco.ip'), 8080);

ZktecoLib 方法

  • 连接

    //    this return bool
          $zk->connect()
    
  • 断开连接

     // this is return bool
     $zk->disconnect()
    
  • 设备启用

     // this is return bool//mixed
     $zk->deviceEnable()
    
  • 设备禁用

     // this is return bool//mixed
     $zk->deviceDisable()
    
  • 面部功能开启

     // this is return bool//mixed
     $zk->faceFunctionOn()
    
  • 设备重启

     // this is return bool//mixed
     $zk->restart()
    
  • 设备序列号

      //    get device serial number
     $zk->serialNumber()
    
  • 设备名称

      //    get device name
     $zk->deviceName()
    
  • 设备 PIN 宽度

      //    get device pin width
     $zk->pinWidth()
    
  • 设备 SSR

      //    get device ssr
     $zk->ssr()
    
  • 设备工作码

      //    get device work code
     $zk->workCode()
    
  • 设备固件版本

      //    get device fmVersion
     $zk->fmVersion()
    
  • 设备平台

      //    get device platform
     $zk->platform()
    
  • 获取考勤

     //    return array[]
     $zk->getAttendance()
    
  • 清除考勤

     //   return bool/mixed
     $zk->clearAttendance()
    
  • 清除管理员

     //    remove all admin
     //    return bool|mixed
     $zk->clearAdmin()
    
  • 清除用户

     //    remove all users
     //    return bool|mixed
     $zk->clearUser()
    
  • 获取用户

      //    get User
      //    this return array[]
      $zk->getUser()
    
  • 删除用户

      //    parameter integer $uid
      //    return bool|mixed
      $zk->deleteUser()
    
  • 设置/添加用户

      //    1 s't parameter int $uid Unique ID (max 65535)
      //    2 nd parameter int|string $userid ID in DB (same like $uid, max length = 9, only numbers - depends device setting)
      //    3 rd parameter string $name (max length = 24)
      //    4 th parameter int|string $password (max length = 8, only numbers - depends device setting)
      //    5 th parameter int $role Default Util::LEVEL_USER
      //    return bool|mixed
      $zk->setUser()
    
  • 用户角色

      The role of user. The length of $role is 1 byte. Possible value of $role are:
      
      0 = LEVEL_USER
      2 = LEVEL_ENROLLER
      12 = LEVEL_MANAGER
      14 = LEVEL_SUPERMANAGER
    

示例

    use KwikKoders\Zkteco\Http\Library\ZktecoLib;
    
    class ZktecoController extends Controller
    {

        public function index()
        {
            $zk = new ZktecoLib(config('zkteco.ip'),config('zkteco.port'));
            if ($zk->connect()){
            $attendance = $zk->getAttendance();
            return view('zkteco::app',compact('attendance'));
            }
        
        }

        public function addUser()
        {
            $zk = new ZktecoLib(config('zkteco.ip'),config('zkteco.port'));
            if ($zk->connect()){
                $role = 14; //14= super admin, 0=User :: according to ZKtecho Machine
                $users = $zk->getUser();
                $total = end($users);
                $lastId=$total[3]+1;
                $zk->setUser($lastId, '11', 'super', '234', $role);
                return "Add user success";
            }
            else{
                 return "Device not connected";
            }
        }

      

    }