当前位置: 代码迷 >> Web前端 >> 如何读取卡中的数据
  详细解决方案

如何读取卡中的数据

热度:57   发布时间:2013-03-17 13:48:31.0
怎么读取卡中的数据

卡是一种传输数据的介质,有很多地方都会用到,去医保,电力局,或者美容院,会给你一张卡,里面记录了用户的个人信息和余额等等信息,只要身有一个卡,干什么都方便。这里面用js读取卡的内容的方法

//读卡操作
function readCard(port,offset,len){
?var data = "";
?try{
??MWReaderCtl.MWic_init(port,9600);
??var rtnValue = MWReaderCtl.LastRet;
??//串口被占的情况
??if(rtnValue<0){
???alert(prepay_rdCard_rdCard.resourceBundle.Prompt.SPORTERROR);
???return -1;
??}
??data = MWReaderCtl.MWsrd_4428(offset,len);
??//如果没有插卡的情况
??if(data=='' || data.length<2*len){
???alert(prepay_rdCard_rdCard.resourceBundle.Prompt.NOCARD);
???return -1;
??}
?}catch(e){
??alert(prepay_rdCard_rdCard.resourceBundle.Prompt.CARDREADFAIL);
??return -1;
?}finally{
??MWReaderCtl.MWic_exit();
?}
?return data;
}

?

//写卡操作
function writeCard(port,offset,len,data,pwd){
?try{
??MWReaderCtl.MWic_init(port,9600);
??var rtnValue = MWReaderCtl.LastRet;
??if(rtnValue<0){
???alert(prepay_rdCard_rdCard.resourceBundle.Prompt.SPORTERROR);
???return -1;
??}
??//比对密码
??MWReaderCtl.MWcsc_4428(4,pwd);
??var rtnValue = MWReaderCtl.LastRet;
??//密码比对出错,卡非法,给出提示
??if(rtnValue<0){
???alert(prepay_rdCard_rdCard.resourceBundle.Prompt.ILLEGALCARD);
???return -1;
??}
??//写卡操作 1个字节对应2个字符
??MWReaderCtl.MWswr_4428(offset,len,data);
??var rtnValue = MWReaderCtl.LastRet;
??//写卡失败
??if(rtnValue<0){
???alert(prepay_rdCard_rdCard.resourceBundle.Prompt.CARDWRITEFAIL);
???return -1;
??}
?}catch(e){
??alert(prepay_rdCard_rdCard.resourceBundle.Prompt.CARDWRITEFAIL);
??return -1;
?}finally{
??MWReaderCtl.MWic_exit();
?}
?return 0;
}

?

在jsp文件里面定义

??<OBJECT id=MWReaderCtl codeBase="rdactivex/MwReader.cab#version=1,0,0,2" data=data:application/x-oleobject;base64,VPpLUhUXNkSyudxeJIvBwwADAADYEwAA2BMAAA==
??classid=CLSID:8E06D862-4D98-11D7-A40B-5254AB51CC00></OBJECT>

其中要创建rdactivex文件夹,文件已经上传

读取卡的内容后,上传action中,根据之前定义通信协议,对卡中的数据进行后台的处理

?

  相关解决方案