首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ZKTeco Push SDK

ZKTeco Push SDK
EN

Stack Overflow用户
提问于 2021-01-22 11:17:19
回答 2查看 3.4K关注 0票数 0

我是ZKteco设备的新手!我用的是Zkteco设备。我有一个Zkteco设备,我已经下载了一个独立的SDK,但是这个SDK不会触发事件(例如OnVerify或OnAttTransaction)。因此,我在一些文章中读到,我需要使用Push SDk,但我找不到它。

EN

回答 2

Stack Overflow用户

发布于 2021-01-22 12:24:28

OnVerify和OnAttTransaction是part的一部分。Push SDK是ZkTeco的专利。它不对最终用户开放。如果您正在寻找实时将数据推送到服务器上的数据,那么您可能需要与zkteco (如CamsUnit(https://camsunit.com/application/zk-teco-essl-api-integration.html) )联系。

票数 2
EN

Stack Overflow用户

发布于 2022-07-15 12:40:34

我花了一个月的时间才发现,对于PUSH SDK和ADMS,ZKTeco显然是不开放的。所以我试着不这么做。下面是我实现的解决方案,它正常工作。

push SDK只是由ZKTeco设备向Bioserver发出的HTTP请求。您可以使用像Wireshark这样的工具来扫描设备发出的HTTP请求,并在您自己的服务器上实现相同的请求/响应。

例如,ZKTeco设备模型VL 560-VL发送类似于此的请求。

代码语言:javascript
运行
复制
GET http://[SERVER-IP:PORT]/iclock/getrequest?SN=XXXXXXXXXX

如果您的服务器与BioTime软件一样,只需发送

代码语言:javascript
运行
复制
OK 

作为文本/纯文本的响应,您的设备将将您的服务器视为"BioTime“。

请注意,您的ZkTeco设备应该有ADMS支持,因此您将首先在设备上配置服务器-IP和端口(请参阅https://www.zkteco.com/上的官方设备文档)。

用户注册

当用户在设备上注册时,设备发送此请求。

代码语言:javascript
运行
复制
POST /iclock/cdata?SN=XXXXXXXXXX&table=OPERLOG&Stamp=9999

使用HTTP缓冲区上的用户信息。就像这个

代码语言:javascript
运行
复制
PIN=2\tName=Johny Deep\tPri=0\tPasswd=\tCard=\tGrp=1\tTZ=0000000100000000\tVerify=0\tViceCard=\tStartDatetime=0\tEndDatetime=0\n

您的服务器应该只解析这些数据并对此请求做出OK响应。

用户日志(clock_in / clock_out)设备请求

代码语言:javascript
运行
复制
POST /iclock/cdata?SN=XXXXXXXXXX&table=ATTLOG&Stamp=9999

设备在HTTP数据缓冲区上发送的数据如下所示

代码语言:javascript
运行
复制
2\t2022-07-12 16:00:20\t1\t15\t\t0\t0\t\t\t43\n

如您所见,您使用'\t‘作为信息分隔符来解析此字符串。

  • 第一个整数是用户PIN,
  • 第二部分是日期和时间,
  • 第三部分是时钟输入if value==0和时钟if value==1。

下面是用Python实现的一个例子

代码语言:javascript
运行
复制
@http.route('/iclock/getrequest', type='http', auth="public", csrf=False)
def zk_bio_device_ping(request):
    print("----------DEVICE PING-----------")
    print(request.GET)
    return HttpResponse("OK", content_type='text/plain')

@http.route('/iclock/getrequest', type='http', auth="public", csrf=False)
def zk_bio_device_push(request):
    print("----------DEVICE SEND DATA----------")
    print(request.GET) 
    print(request.body.decode('utf-8'))   
    return HttpResponse("OK", content_type='text/plain')

设备不使用任何身份验证来与服务器通信!我很确定这是一个很大的安全问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65844119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档