web开发与IC卡读卡器

news/2024/11/17 7:19:18/

前段时间有个项目在客户端web下使用IC卡读卡器,试了很多种方案都觉得麻烦,最后在网上找了个现成的方案,采用了YW-605HA读卡器,厂家就不说了,免得说做广告。开发起来也挺简单。

 他们将IC卡读卡器接口封装成ocx文件,分为32位版本和64位版本,自动安装时自动判断32位还是64位,这个比较方便,要不然按照版本部署客户端,那可得累死了。他们的说明如下:


控件文件名称:yw60x.ocx

32位控件:x86\yw60x.ocx

64位控件:x64\yw60x.ocx

用户可以根据B/S客户端的环境配置相应的ocx文件,也可以采用安装包yw60xocxSetup.exe自动判断客户端的环境并且自动选择适合的ocx进行安装并注册


web读卡器ocx有静态调用和动态调用两种方法,这个做web开发的估计都熟悉,直接copy代码就行了,说明如下:


读写器控件yw60x.ocx类名:YW60X.yw60xCtrl.1

读写器控件yw60x.ocx的classid:167E1838-7388-4A24-86DE-985B91F0FFBF

在web中可以采用静态调用和动态调用的方法来初始化控件

动态调用方法:

var obj = new ActiveXObject("YW60X.yw60xCtrl.1");

静态调用方法:

<object id="yoworfidreader"

classid="clsid:167E1838-7388-4A24-86DE-985B91F0FFBF">

</object>


下面说说在web下我们如何与web读卡器进行交互,为了输出相应的参数,他们设计了几个输出性质的属性,如下:

属性名称

类型

含义

备注

LastResult

Long

最后一个函数执行后的返回值,与函数本身的返回值相同

判断函数的返回值与判断LastResult值是一样的

OutData1

Variant

一个Byte数组,函数执行要输出的首要内容

Byte数组可以在js和vbs里面自由转换成数组使用,或者使用控件自带的转换函数进行转换

OutData1Size

Long

OutData1数组的长度,字节数

 

OutData2

Variant

一个Byte数组,函数执行要输出的首要内容

 

OutData2Size

Long

OutData2数组的长度,字节数

 

OutData3

Variant

一个Byte数组,函数执行要输出的首要内容

 

OutData3Size

Long

OutData3数组的长度,字节数

所有的数据类型都是varaint类型的,与javascript非常兼容,但是在web中处理16进制数组是个麻烦的事,为此他们还设计了很多的类型转换函数,如下:

  从数组获取所需格式的卡号字符串


函数原形:BSTR ConvertCardNo(VARIANT vCardNo, LONG ConvertIndex)


  将数组转换成16进制的字符串


函数原形:BSTR GetHexStr(VARIANT vData);


  将数组转换成ascii可见字符的字符串


函数原形:BSTR GetAlphaStr(VARIANT vData);


   将16进制字符串转换成VARIANT类的数组


函数原形:VARIANT GetVariantFromHexStr(BSTR sHexStr);
  将普通符串转换成VARIANT类的数组


函数原形:VARIANT GetVariantFromAlphaStr(BSTR sAlphaStr);


看到这了,大家应该知道了。各种数据转换都是很方便的,下面看看怎么读卡,直接给一段代码吧,也是很简单的

function ReadCard()
 {
 var BlockID;
 var Key;
 RequestCard();
 BlockID = document.getElementById("BlockIDRead").value;
  
 Key =document.ReaderTest.GetVariantFromHexStr(document.getElementById("KeyRead").value);
 i = document.ReaderTest.YW_KeyAuthorization(1,96,BlockID,Key);
 if(i<0)
 {
 document.getElementById("DataRead").value ="密钥认证错误";
 return;
 }
  
 i = document.ReaderTest.YW_ReadaBlock(1,BlockID,16);
 if(i<0)
 {
 document.getElementById("DataRead").value ="读块错误";
 return;
 }
 document.getElementById("DataRead").value = document.ReaderTest.GetHexStr(document.ReaderTest.OutData1);
 document.ReaderTest.YW_Buzzer(1,5,5,1);
 CloseReader();
 }
  
很简单的吧




http://www.ppmy.cn/news/363880.html

相关文章

H.323协议解析

开源项目 以下是一些可能有用的开源项目&#xff0c;可以用于H.323协议的解析&#xff1a; OpenH323(旧)、H323plus(新)&#xff1a;OpenH323是一个开源的H.323协议栈&#xff0c;用于实现IP电话、视频会议和多媒体流传输等应用。它提供了一个完整的H.323协议实现&#xff0c;…

windows USB读卡器驱动详解

目标 在windows 2000及以上版本的操作系统中&#xff0c;开发usb读卡器驱动。实现数据批量传输功能&#xff0c;同时需要根据特定的协议&#xff08;协议可自定义&#xff09;进行通信。实现一个基于此usb驱动的动态库&#xff08;统一接口&#xff09;&#xff0c;供上层应用…

NFC读卡器工具

测试过了&#xff0c;完美支持我的读卡器ACR122U NFC 非接触式IC卡读写器USB&#xff0c;我的MiFare Ultralight卡片。 The release 1.20 of SpringCard PC/SC SDK is now available in the Download section of the website (direct link to latest version :http://www.sprin…

RFID读写---RFID读卡

代码为上课练习使用的RFID读卡器使用&#xff01; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System…

web端接收读卡器卡片信息

项目背景 通过电脑连接的读卡器读取卡片信息&#xff0c;并由web页面接收和处理卡片信息。 读卡器抛出卡片信息流程 卡片贴近或放置到读卡器上读卡器解析卡片信息&#xff0c;并形成固定格式的字符串&#xff0c;包括的信息有&#xff1a;卡片写入的数据、卡片原数据&#x…

IC卡读写器的应用有哪些?

IC卡读写器的应用介绍 IC卡读卡器是一种非接触式IC卡读写设备&#xff0c;通过USB接口连接到PC&#xff0c;支持所有设备的访问。实现射频卡功能&#xff0c;支持小额支付功能常被用于用于门禁、考勤、会议登录、餐饮一卡通、会员身份识别系统及各种应用系统的发卡系统。 根据I…

IO-Link通信RFID读卡器|传感器在汽车差速器组装线上的应用方案

汽配自动化产线背景 汽车配件自动化加工涉及汽车配件加工整体领域的各单元并服务于汽车配件加工的所有产品。随着汽车配件加工市场竞争的日趋激烈&#xff0c;环保理念的深入人心&#xff0c;以及自动化程度的不断升级和应用&#xff0c;汽车配件加工零部件行业近年来呈现出如…

【STM32】STM32使用RFID读卡器

STM32使用RFID读卡器 RFID卡片 ID卡&#xff08;身份标识&#xff09;&#xff1a;作用就是比如你要输入学号&#xff0c;你刷卡直接就相当于输入学号&#xff0c;省去了输入的过程 IC卡&#xff1a;集成电路卡&#xff0c;是将一种微电子芯片嵌入卡片之中 RFID的操作 1、…