怎么读取卡中的数据

卡是一种传输数据的介质,有很多地方都会用到,去医保,电力局,或者美容院,会给你一张卡,里面记录了用户的个人信息和余额等等信息,只要身有一个卡,干什么都方便。这里面用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中,根据之前定义通信协议,对卡中的数据进行后台的处理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值