d7/zkteco-sdk

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

dev-master 2024-01-16 03:10 UTC

This package is not auto-updated.

Last update: 2024-09-25 04:29:03 UTC


README

Issues Stars Forks

Zkteco Laravel SDK

本包通过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 laradevsbd/zkteco-sdk

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

'providers' => [

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

    ]

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

php artisan vendor:publish

用法

创建ZktecoLib类的对象。
    use Laradevsbd\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 Laradevsbd\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";
            }
        }

      

    }