支持IC卡读卡器在web中应用,兼容IE,Chrome,Firefox,Safari,Opera,Edge等浏览器
为了在BS结构下使用RFID读写器和IC卡读卡器,友我科技提供了基于ocx技术的安装包,使大家可以在web页面调用和使用IC卡读卡器,但是ocx的局限就是只能在IE浏览器中使用。 为了突破这种局限,友我科技又发布了RFID读写器Web插件,他不仅支持IE浏览器,也支持Firefox,Chrome,Safari,Opera等等主流的浏览器,让软件工程师的作品无需再注明只支持IE,极大的提高用户体验。
友我科技RFID读写器Web插件是为RFID读写器和IC卡读卡器为在BS结构下,更方便更容易更稳定的嵌入到各种主流的浏览器中提供的的数据流服务。
RFID读写器Web插件采用js脚本,无需ocx控件嵌入,通过异步回调的方式,就可以在web端实现IC卡的读写。
目前,RFID读写器Web插件插件支持高频IC卡,例如M1系列卡片。也支持超高频RFID卡,如6C,G2卡
WEBWeb插件插件支持Windows下 IE,Chrome,Firefox,Safari,Opera以及以这些为内核的浏览器,在客户端会自动安装云服web插件.支持的IC卡读写器型号列表如下:
型号 | SDT-HA | YW-605HA | YW-607 | YW-1607 | YW-627 | YW-602H |
---|---|---|---|---|---|---|
特性 | 低价格USB免驱IC卡读写器 | USB免驱动IC卡读写器 | USB免驱动NFC读写器 | 升级的USB免驱动NFC读写器 | 带液晶屏和底座的USB免驱动NFC读写器 | USB免驱动的超高频UHF读写器 |
支持卡频率 | 13.56M高频 | 13.56M高频 | 13.56M高频 | 13.56M高频 | 13.56M高频 | 860M-915M超高频 |
支持卡类型 | M1卡,CPU卡 | M1卡,CPU卡 | M1卡,CPU卡,SR512, 15693,NTAG, TOPAZ,Felica |
M1卡,CPU卡,SR512, 15693,NTAG, TOPAZ,Felica |
M1卡,CPU卡,SR512, 15693,NTAG, TOPAZ,Felica |
Gen2标准的电子标签 |
在线购买样品 | 购买SDT-HA | 购买YW-605HA | 购买YW-607 | 购买YW-1607 | 购买YW-627 | 购买YW-602H |
友我科技rfid读写器Web插件的优势:
1、该系统在单机,局域网,互联网都可以使用,只要客户端安装Web插件程序就行。
2、客户端同时支持net frame3.5和net frame4.0及以上。
3、客户端兼容IE,Chrome,Firefox,Safari,Opeara及其相关内核的浏览器。
4、与网页编程语言无关,不管是asp,php,jsp,aspx,html,都支持。
5、客户端采用事件驱动(回调函数),无需占用界面线程的时间。
6、客户端支持多种IC卡读卡器,可以根需求据功能自由选择。
7、单独支持64位和128位的DES加解密服务。
8、支持64位或者128位的DES加解密读写数据块,流程更少,效率更高,数据更安全。
(仅YW-607读写器以上支持)
9、支持高频和超高频的IC卡读卡器有相对应的卡片。
各浏览器支持的版本如下:
google Chrome V4.0及以上
Firefox V4.0及以上
IE V10.0及以上
Opera V10.0及以上
Safari V5.0及以上
,Edge浏览器
下载RFID读写器Web插件开发版,当前版本V2.2.0.0,有提示安装界面,有进入开发指南
下载RFID读写器Web插件终端版,当前版本V2.2.0.0,有安装界面,无开发内容
RFID读写器Web插件支持的RFID读写器有YW-605HA,YW-607,YW-602系列等
基于RFID读写器Web插件的web开发指南 Web开发应用实例
首先包含js文件
<script language="javascript" src="http://127.0.0.1:8008/YOWOCloudRFIDReader.js"></script>
在自己的文件中引用类:YOWORFIDReader, 如下代码创建一个读卡器的object。
try
{
var rfidreader=YOWORFIDReader.createNew();
}
catch(e)
{
alert("创建友我科技RFIDWeb插件连接失败,请先下载安装!");
top.location = "http://www.youwokeji.com.cn/CloudReader/YOWORFIDReaderCloudForWeb.exe";
}
if(!rfidreader.TryConnect())
{
alert("浏览器不支持,请更换浏览器后重试!");
}
然后就可以使用。
属性名 | 类型 | 默认值 | 名称 | 备注 |
---|---|---|---|---|
Connected | bool | false | 是否连接Web插件 | |
Version | 字符串 | “” | Web插件版本 | Web插件的版本号,如“1.0.0.0”,此版本号可以通过回调函数取得 |
ReaderID | 数字 | 1 | 读卡器ID | 此参数在使用USB接口的读卡器时可以忽略,无须设置。 |
UID | 数字 | 0 | 自己定义的序号 | 自定义序号会随着回调函数返回,即可以在回调函数中确定是在哪里调用函数的。但是前提是这个序号必须是唯一的。 |
RequestActive | 数字 | 1 | 寻卡模式 0:寻所有的卡 1:寻激活的卡
|
所有的卡,包括了halt休眠的卡,激活的卡不含halt休眠的卡。 |
KeyMode | 数字 | 0 | 密钥类型 0:A密钥 1:B密钥 |
|
KeyString | 字符串 | "FFFFFFFFFFFF" | 密钥字符串 | 对于高频HF的卡片:如果是16进制字符串,必须是6字节12个16进制字符。如果是普通字符串可以随意长度,不足部分自动补0x00,超出部分自动截掉。 如果使用下载的密钥,则此处为密钥序号。 对于超高频UHF标签:4字节16进制密码或者数字密码。 |
KeyStringMode | 数字 | 0 | 密钥字符串的格式 0:16进制字符串 1:普通字符串 2:使用下载的密钥 |
|
Repeat | 数字 | 0 | 重复执行标志 0:只执行一次 1:重复执行 |
重复执行得情况下,如果执行成功,通过回调函数返回结果,如果失败,则不返回任何结果。 只执行一次的情况下,不管成功还是失败都会通过回调函数返回结果。 |
BeepOnSuccess | 数字 | 1 | 如果函数执行成功,蜂鸣器Beep次数 | |
BeepOnFail | 数字 | 0 | 如果函数执行失败,蜂鸣器Beep次数 | |
HaltAfterSuccess | 数字 | 0 | 如果函数执行成功,是否将卡休眠 0:不休眠 1:休眠 |
|
DesDir | 数字 | 0 | 数据加密方向 0:不加密 1:加密 2:解密 |
|
DesMode | 数字 | 0 | 加解密原数据处理方式: 0:原数据 1:对原数据取反 2:原数据+原数据取反 |
对于DesMode=2时,如果原数据为8字节,则处理后的数据为16字节。所以写块操作时,如果加密写块,同时DesMode=2,则块数据只能为8字节。 |
DesKey | 字符串 | "" | DES密钥,可以为16进制字符串或者普通字符串 |
DesKey的字节长度只能为8或者16,为8时为64位DES加解密,等于16字节时,为128位3DES加解密。 |
DesKeyMode | 数字 | 0 | DesKey密钥的格式: 0:16进制字符串 1:普通字符串 |
可以做如下调用:
rfidreader.onResult(function(resultdata)
{
}
参数resultdata是一个结构,结构类型如下:
FunctionID:数字,执行的函数编号,
Result:数字,函数执行后的返回值,小于0位失败,大于0为成功。
UID:数字,执行函数前,自定义的序号,
ReaderID:数字,读卡器的ID,
CardNo:字符串,所操作的卡的卡号,16进制正常顺序,
strData:字符串,执行函数根据函数参数返回的数据,
ValData:数字,执行函数根据函数参数返回数字结果。
类YOWORFIDReader的方法之高频IC卡部分:(支持读卡器YW-605HA,YW-607,YW-627)
1.1、寻TypeA卡的卡号,包含M1卡
RequestTypeACardNo(FormatID, OrderID)
参数:FormatID,返回的卡号格式,0:16进制(8HEX),1:10进制(10DEC).
OrderID, 卡号的现实顺序,0:正常顺序,1:倒序
回调函数返回结果:
FunctionID=0,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:字符串,执行函数根据函数参数给定的格式的卡号,
1.2、寻二代证的卡号,不是证件号码 (YW-607)
RequestChinaIDCardNo()
参数:无
回调函数返回结果:
FunctionID=3,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:所操作的卡的卡号,16进制正常顺序,
1.3、寻15693卡的卡号(YW-607)
Request15693CardUID()
参数:无回调函数返回结果:
FunctionID=2,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:所操作的卡的卡号,16进制正常顺序,
1.4、M1卡读块,支持将读取的数据进行DES或者3DES加或者解密后送回
M1ReadBlock(blockIndex, FormatID)
如果DesDir=0则直接读块,如果DesDir=1(YW-607)或者DesDir=2(YW-607),同时指定DES的密钥,则将数据加解密后返回
参数:blockIndex,块号,绝对地址,从0开始
FormatID,格式,0:16进制字符串返回,1:普通字符串返回。
回调函数返回结果:
FunctionID=5,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:根据参数返回的块数据,
1.5、M1卡写块,支持DES或者3DES加密后写块
M1WriteBlock(blockindex,blockdata,FormatID
如果DesDir=0则直接将数据写块,如果DesDir=1(YW-607)或者DesDir=2(YW-607),同时指定DES的密钥,则将数据加解密后写块
参数:blockIndex,块号,绝对地址,从0开始
blockdata:要写入的字符串,由于M1卡的每块为16字节,故blockdata最终转换的16进制不够16字节长度,后面将补0x00,如果超过16字节,将去掉多余的字节。
FormatID,格式,0:16进制字符串返回,1:普通字符串返回。
回调函数返回结果:
FunctionID=6,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:实际写入的数据的16进制字符串,
1.6、M1卡读扇区,支持将读取的数据进行DES或者3DES加或者解密后送回
M1ReadSector(sectorindex, FormatID)
如果DesDir=0则直接读扇区,如果DesDir=1(YW-607)或者DesDir=2(YW-607),同时指定DES的密钥,则将数据加解密后返回
参数:blockIndex,块号,绝对地址,从0开始
FormatID,格式,0:16进制字符串返回,1:普通字符串返回。
回调函数返回结果:
FunctionID=7,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:根据参数返回的扇区数据,
1.7、M1卡写扇区,支持DES或者3DES加密后写扇区
M1WriteSector(blockindex,blockdata,FormatID)
如果DesDir=0则直接将数据写扇区,如果DesDir=1(YW-607)或者DesDir=2(YW-607),同时指定DES的密钥,则将数据加解密后写扇区
参数:blockIndex,块号,绝对地址,从0开始
blockdata:要写入的字符串,由于M1卡的扇区有4块和16块,可用字节为48字节和240字节
故blockdata最终转换的16进制不够字节长度,后面将补0x00,如果超过字节长度,将去掉多余的字节。
FormatID,格式,0:16进制字符串返回,1:普通字符串返回。
回调函数返回结果:
FunctionID=8,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:实际写入的数据的16进制字符串,
1.8、M1卡初始化钱包
M1IntialValue(blockIndex,value)
参数:blockIndex,块号,绝对地址,从0开始
value:要初始化的值
回调函数返回结果:
FunctionID=9,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:要初始化的值,
ValData:初始化后的余额,
1.9、M1卡获取钱包余额
M1GetValue(blockIndex)
参数:blockIndex,块号,绝对地址,从0开始
回调函数返回结果:
FunctionID=10,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:钱包余额,
ValData:钱包余额,
1.10、M1卡钱包充值
M1IncreaseValue(blockIndex,value)
参数:blockIndex,块号,绝对地址,从0开始
value:要充值的值
回调函数返回结果:
FunctionID=11,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:要充值的值,
ValData:充值后的钱包余额,
1.11、M1卡钱包消费,即减值
M1DecreaseValue(blockIndex,value)
参数:blockIndex,块号,绝对地址,从0开始
value:要减值的值
回调函数返回结果:
FunctionID=12,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:要减值的值,
ValData:减值后的钱包余额,
1.12、蜂鸣器鸣叫
Beep(TimeOn,TimeOff,Times)
参数:TimeOn,鸣叫的时间(*100ms)
TimeOff,:不鸣叫的时间(*100ms)
Times,:循环的次数
注:蜂鸣器函数在类属性中可以配置每次执行后的动作,一般不需要单独调用。
回调函数返回结果:
FunctionID=13,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
1.13、获取Web插件的版本
Ver()
参数:无
注:在连接Web插件时,自动调用了Ver()函数,中途可以通过Version属性获取或者在回调函数中读取。
回调函数返回结果:
FunctionID=14,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
strData:版本号,
1.14、断开Web插件连接
Disconnect()
参数:无
注:断开Web插件连接,一般在页面的unload中调用。
1.15、CPU卡复位
ACPUReset()
参数:无
回调函数返回结果:
FunctionID=17,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:所操作的卡的卡号,16进制正常顺序,
strData:复位后的返回的16进制字符串
ValData:无
1.16、CPU卡执行COS
CPUCOS(COSHexString)
参数:COSHexString:要执行的COS指令,16进制字符串。
回调函数返回结果:
FunctionID=19,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:无
strData:执行COS后的返回的16进制字符串
ValData:执行COS指令返回的状态,10进制显示,如:9000显示为36864
1.17、执行DES或者3DES加解密算法
Des(DesData, DesDataForamt)
DES加解密函数要配合属性DesDir,DesMode,DesKey,DesKeyMode等使用
参数:DesDatag:要加解密的数据。DesDataForamt:数据的格式,0十六进制字符串,1位普通字符串
回调函数返回结果:
FunctionID=22,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:无
strData:执行加解密后的16进制字符串
ValData:无
1.18、下载密钥到读卡器中
DownKey(KeyIndex,KeyString)
DownKey可以将密钥下载到读卡器中
KeyIndex:密钥序号,范围0到31。
KeyString:16进制字符串,6字节。
回调函数返回结果:
FunctionID=45,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
CardNo:无
strData:无
ValData:无
RFID读写器,SDK,IC卡读卡器,开发包,二次开发,智能卡读卡器,RFID读卡器,CPU卡读写器,读卡模块 微信扫一扫联系我们 |
1 |
RFID读写器产品手册下载 |
2 |
读写器开发SDK下载 |
3 |
WEB读卡器开发指南 |
4 |
Windows读卡器开发指南 |
5 |
Android读卡器开发指南 |
6 |
Wince读卡器开发指南 |
7 |
PLC读卡器开发指南 |
8 |
Linux读卡器开发指南 |
9 |
单片机读卡器开发指南 |
10 |
PCSC读卡器开发指南 |