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

很简单的吧

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

web开发与IC卡读卡器的更多相关文章

  1. 跨web浏览器的IC卡读卡器解决方案

    BS结构的程序,如果要与IC卡读卡器通信本身就是件不容易解决的事情.微软的activex ocx技术将这种应用限制在IE浏览器上了,不兼容其它的浏览器.而Chrome使用插件也不兼容IE和其他的浏览器 ...

  2. IC卡读卡器web开发,支持IE,Chrome,Firefox,Safari,Opera等主流浏览 器

    IC卡读卡器在web端的应用越来越多,但是早期发布的ocx技术只支持IE浏览器,使用受到了很多的限制.IC卡读卡器云服务的推 出,彻底解决了以上的局限,使得IC卡读卡器不仅可以应用在IE浏览器上,还可 ...

  3. IC卡读卡器在安卓(android)下的开发

    友我科技推出IC卡读卡器的Android开发包,软件工程师只需要导入jar类库文件,就可以在App中操作IC卡读卡器了. 目前IC卡读卡器的Android开发包开放操作的卡类型有:M1, S50, U ...

  4. 射频IC卡和IC卡读卡器的成本分析

    当今射频IC卡和IC卡读卡器的种类繁多,很多人问IC卡读卡器多少钱,那么如何在满足我们需求的情况下最大的节省成本呢.下面就各种射频IC卡和IC卡读卡器来分析下各自的成本.                ...

  5. BS结构中,web如何将数据进行DES加密并写道IC卡中

    在IC卡应用系统中,一般都要对IC卡数据进行DES加密,以保证数据的安全.友我科技RFID读写器云服务2.0充分考虑了这个需求,只需要软件工程师简单的配置即可实现数据的加解密并且写到数据块中.如下图所 ...

  6. 智能IC卡与终端(读卡器)之间的传输协议

    1.有两种协议 T=0,异步半双工字符传输协议 T=1,异步半双工块传输协议 终端一般都支持这两种协议,IC卡可以选择支持其中的一种.(因为终端可能需要面对各种类型的卡片,所以必须两种协议都支持,而卡 ...

  7. IC卡

    本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . IC卡 (Integrated Circuit Card,集成电路卡),也称智能卡(Smart card).智慧卡(Intelligent ...

  8. Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号

    RFID简介:射频识别即RFID(Radio Frequency IDentification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定 ...

  9. 移动端 Web 开发前端知识整理

    文章来源: http://www.restran.net/2015/05/14/mobile-web-front-end-collections/ 最近整理的移动端 Web 开发前端知识,不定期更新. ...

随机推荐

  1. iOS 用Swipe手势和动画实现循环播放图片

    主要想法 添加3个ImageView展示图片,实现图片的无限循环. 使用Swipe手势识别用户向右或向左滑动图片. 使用CATransition给ImageView.layer添加动画,展示图片更换的 ...

  2. 地图定位CoreLocation框架,地理位置编码与反编码

    在现代互联网时代,越来越多的应用,都用到了地图定位功能,在iOS开发中,想要加入这种功能,必须基于两个框架进行开发: 1.Map Kit:用于显示地图, 2.CoreLocation:用于显示地理位置 ...

  3. 初级:使用MD5对字符串进行加密操作

    加密技术在企业数据安全中的应用: 大型企业管理软件的应用越来越广泛,企业数据平台涉及局域网.广域网. Internet等,在各类系统中保存的企业关键数据量也越来越大,许多数据需要保存数十年以上,甚至是 ...

  4. 配置apache

    1. 修改httpd.conf文件 # vi  /usr/local/apache/conf/httpd.conf 1) 设置根目录的路径 根目录是指Apache存放配置文件和日志文件的目录,配置参数 ...

  5. 第24篇 js小知识和“坑”

    前面说了说了js的相关知识,基本上除了语法外,把项目常用的知识做了一个梳理,现在说下js的其它方面的知识,这些知识不成体系,属于不理解对于一般开发没什么太多影响,但如果理解清楚,可以更好去开发. js ...

  6. ReactiveSwift日常运用<一>

    上一篇中,我已经很详细的介绍了ReactiveSwift,接下来我就举几个简单的例子供大家参考.1.键盘的监听这在我们开发中很常用,因为很多App都需要对登录注册进行判断,这样可以避免服务器存储很多废 ...

  7. vim编辑器的常见使用功能

    Vim是一个类似于vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性. 掌握简单的vim命令可以大大提高我们编辑文档效率,在装有vim编辑器的linux系统终端输入vim ...

  8. HTML超文本标记语言-基础标签整理

    第一章 <META>标签: <meta http-equiv="Content-Type" Content="text/html;charset=gb2 ...

  9. MyBatis极速入门开发手册(2017-2-6更新)

    前言: 本篇文章对我的学习内容做一个归纳梳理,同时也记录一些学习过程中遇上的问题及注意事项等等,可以帮助新入门的朋友们消除一些误区与盲区,希望能帮上一些正在学习的朋友们.在编写时会引用一些mybati ...

  10. 适用MySQL Migration Toolkit 1.0 将oracle迁移到mysql中遇到的问题

    这里主要说一下我在适用中碰到的问题,主要过程参考 http://www.cnblogs.com/duwenlei/p/3520759.html. 首先启动MySQLMigrationTool.exe ...