web端 刷卡器_web开发与IC卡读卡器

前段时间有个项目在客户端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");

静态调用方法:

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

下面说说在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();

}

很简单的吧

IC卡读卡器的web开发也可以采用友我科技RFID读写器云服务技术,将适应更多的web浏览器,如IE,Chrome,Firefox,safari,Opera等等

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值