我是ZKteco设备的新手!我用的是Zkteco设备。我有一个Zkteco设备,我已经下载了一个独立的SDK,但是这个SDK不会触发事件(例如OnVerify或OnAttTransaction)。因此,我在一些文章中读到,我需要使用Push SDk,但我找不到它。
发布于 2021-01-22 12:24:28
OnVerify和OnAttTransaction是part的一部分。Push SDK是ZkTeco的专利。它不对最终用户开放。如果您正在寻找实时将数据推送到服务器上的数据,那么您可能需要与zkteco (如CamsUnit(https://camsunit.com/application/zk-teco-essl-api-integration.html) )联系。
发布于 2022-07-15 12:40:34
我花了一个月的时间才发现,对于PUSH SDK和ADMS,ZKTeco显然是不开放的。所以我试着不这么做。下面是我实现的解决方案,它正常工作。
push SDK只是由ZKTeco设备向Bioserver发出的HTTP请求。您可以使用像Wireshark这样的工具来扫描设备发出的HTTP请求,并在您自己的服务器上实现相同的请求/响应。
例如,ZKTeco设备模型VL 560-VL发送类似于此的请求。
GET http://[SERVER-IP:PORT]/iclock/getrequest?SN=XXXXXXXXXX
如果您的服务器与BioTime软件一样,只需发送
OK
作为文本/纯文本的响应,您的设备将将您的服务器视为"BioTime“。
请注意,您的ZkTeco设备应该有ADMS支持,因此您将首先在设备上配置服务器-IP和端口(请参阅https://www.zkteco.com/上的官方设备文档)。
用户注册
当用户在设备上注册时,设备发送此请求。
POST /iclock/cdata?SN=XXXXXXXXXX&table=OPERLOG&Stamp=9999
使用HTTP缓冲区上的用户信息。就像这个
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)设备请求
POST /iclock/cdata?SN=XXXXXXXXXX&table=ATTLOG&Stamp=9999
设备在HTTP数据缓冲区上发送的数据如下所示
2\t2022-07-12 16:00:20\t1\t15\t\t0\t0\t\t\t43\n
如您所见,您使用'\t‘作为信息分隔符来解析此字符串。
下面是用Python实现的一个例子
@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')
设备不使用任何身份验证来与服务器通信!我很确定这是一个很大的安全问题。
https://stackoverflow.com/questions/65844119
复制相似问题