记录一下web端调用IC卡读卡器的大致流程

本文详细记录了使用德卡D8型号读卡器在web端进行IC卡读写的流程。通过OCX控件在IE浏览器中调用SDK,其他浏览器需额外处理。内容包括M1卡的基础知识,如扇区和地址概念,以及写卡和读卡的基本步骤。提供初始化和操作示例,适用于理解德卡D8读卡器的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结一下web端IC卡读卡器的调用方法

公司项目中用到了IC卡,需要实现读写IC卡,并且与服务端交互。IC卡读卡器用的是德卡的D8型号,SDK可以在德卡官网找到,下载链接:德卡SDK下载

官方提供了多种语言的SDK,web端调用首先会想到页面调用OCX的方式。HTML内调用OCX的方法不在赘述,具体可以查看HTML调用OCX。IE浏览器在打开响应页面上需要点“允许阻止的内容”才能成功加载OCX控件,否则无法调用OCX。Chrome及其他浏览器相对复杂,请自行百度。

在操作IC卡之前先了解一下IC卡的一些基础(本文以M1卡为例):
M1卡有16个扇区,即0到15扇区,要读取扇区中的数据,首先要进行密码校验(校验读卡设备中的密码和卡上的密码);要读取哪个扇区的数据就要校验哪个扇区的密码,dc_read或dc_read_hex方法是用的地址是绝对地址(每个扇区4个地址,16个扇区共64个地址,即0到63),校验完0扇区的密码后,能读取0到3地址上的数据,校验完1扇区的密码后,能读取4到7地址上的数据,以此类推。假设扇区号是 sNo,数据块号是bNo,则:sNo号扇区的最小区块号为:4 * sNo,最大区块号为:4 * sNo + 3

对卡的操作基本步骤:
初始化 -> 寻卡 -> 校验密码 -> 操作(读、写、其他操作) -> dc_exit(不执行 exit的话OCX调用会出错)


  • 写卡示例函数
function writeCard(){
   
	var st; //主要用于返回值
	var lSnr; //本用于取序列号,但在javascript只是当成dc_card函数的一个临时变量

    var messageText = document.getElementById("messageText");
	st = rd.dc_init(100, 115200);
	if(st <= 0) //返回值小于等于0表示失败
	{
   
		rd.dc_exit();
		messageText.value = messageText.value += "dc_init error!\r\n\r\n";
		return;
	}
	messageText.value = messageText.value += "dc_init ok!\r\n";

	//寻卡,能返回在工作区域内某张卡的序列号
	var snrlen;
	st = rd.dc_card_n(0,snrlen);
	if(st != 0)
	{
   
		messageText.value = messageText.value + "dc_card_n error!"+ "\r\n"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值