利用IE瀏覽器接入IC卡讀寫器對(duì)非接觸式CPU卡的讀寫
- 2019-05-29 16:50:00
- 諾塔斯智能科技 原創(chuàng)
- 3896
B/S(Brower/Server,瀏覽器/服務(wù)器)模式又稱B/S結(jié)構(gòu),是Web興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式。Web瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使用;
現(xiàn)在越來越多的B/S架構(gòu)的應(yīng)用,然而在針對(duì)嵌入式開發(fā)過程中,特別是對(duì)非接觸式IC卡,CPU卡的讀寫等一系列的嵌入式開發(fā),基于瀏覽器的B/S架構(gòu)就顯得有些“力不從心”了。
為了在B/S(Brower/Server,瀏覽器/服務(wù)器)模式中使用IC卡讀寫器進(jìn)行對(duì)非接觸式CPU卡的讀寫,我們?cè)谶@里以Actice X控件為例,提供基于Actice X通過瀏覽器對(duì)非接觸式CPU卡的讀寫范例,供大家參考。由于Actice X控件只能在IE瀏覽器或基于IE內(nèi)核的瀏覽器上才能使用。因此,Actice X控件的使用也是有局限性的,這也是基于B/B架構(gòu)環(huán)境下嵌入式開發(fā)的一個(gè)軟肋。
這里以諾塔斯L3-U非接觸式CPU卡讀寫器在在IE瀏覽器或者基于IE內(nèi)核的瀏覽器環(huán)境下,利用Active X控件實(shí)現(xiàn)對(duì)非接觸式CPU卡的讀寫操作,詳細(xì)步驟如下:
第一、系統(tǒng)中注冊(cè)O(shè)CX控件,在開發(fā)包中我們提供了LotusCardActiveX.ocx這個(gè)文件,需要對(duì)它進(jìn)行注冊(cè)(這里不再贅述如何注冊(cè)ocx控件),可以在開發(fā)包中執(zhí)行RegOcx.bat這個(gè)批處理文件即可。注意, LotusCardActiveX.ocx所在的文件路徑不要有中文路徑,否則有可能提示控件注冊(cè)失敗。
第二、在頁(yè)面中引用正確的CLASSID,我們?cè)O(shè)備的CLASSID=CLSID:BD1874A5-3810-4639-8B70-3DDD607BAADB,在頁(yè)面中完整應(yīng)用如下:
<OBJECT ID=LotusCardDriver Visible=false WIDTH=0 HEIGHT=0 CLASSID="CLSID:BD1874A5-3810-4639-8B70-3DDD607BAADB"> </OBJECT>第三、在IE瀏覽器或者基于IE內(nèi)核的瀏覽器環(huán)境下,利用Active X控件實(shí)現(xiàn)對(duì)非接觸式CPU卡的讀寫操作,范例代碼如下:
function OnTest() { var nHandle = 0; //設(shè)備句柄 var bResult = 0; var strTextInfo = ""; var strMac = ""; nHandle = LotusCardDriver.OpenDevice("",0,0,0);//讀寫器設(shè)備初始化,如果采用USB免驅(qū)動(dòng)IC卡讀寫器,第一個(gè)參數(shù)為空;
如果采用RS232串口免驅(qū)的IC卡讀寫器,第一個(gè)參數(shù)為對(duì)應(yīng)的端口號(hào);如果采用TCP/IP通信的IC卡讀寫器,第一個(gè)參數(shù)為當(dāng)前設(shè)備的IP地址。 if(nHandle <=0 ) { alert("打開設(shè)備失敗!"); return; } LotusCardDriver.Beep(nHandle,10);//設(shè)置IC卡讀寫器的蜂鳴器,對(duì)讀寫器操作過程中的提示音。 bResult = LotusCardDriver.SetCardType(nHandle, 'A'); if(bResult!=1) { alert("設(shè)置卡類型失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } LotusCardDriver.CardPassWord="FFFFFFFFFFFF";//卡片出廠的默認(rèn)密碼12個(gè)F bResult=LotusCardDriver.ResetCpuCard(nHandle); if(bResult!=1) { alert("復(fù)位CPU卡失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } alert("ATS:" +LotusCardDriver.ReadWriteBuffer); LotusCardDriver.ReadWriteBuffer="0084000004";//CPU卡開放指令,在針對(duì)CPU卡讀寫過程中,實(shí)際指令請(qǐng)參考非接觸式CPU卡的COS指令手冊(cè)進(jìn)行。 bResult=LotusCardDriver.SendCOSCommand(nHandle); if(bResult!=1) { alert("執(zhí)行APDU失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } alert("APDU返回值:" +LotusCardDriver.ReadWriteBuffer); strMac = LotusCardDriver.CalcMac("BDEA1D6B7DCE4066", "84D401FF1CD080DBC77396518189B07B35A1B3F47E2370A96AC8F57ED4", "00000000000000000000000000000000"); alert("MAC:"+strMac); LotusCardDriver.CloseDevice(nHandle); } </script> <!-- Insert HTML here --> <INPUT id=test type=button value="讀卡器測(cè)試" onclick=OnTest()></BODY>
范例中僅僅采用了
0084000004這條指令對(duì)非接觸式CPU卡的一個(gè)讀寫驗(yàn)證,用戶可以根據(jù)廠商提供的非接觸式CPU卡配套的指令進(jìn)行二次開發(fā),我們將提供技術(shù)支持,讓客戶實(shí)現(xiàn)快速開發(fā),從而縮短產(chǎn)品開發(fā)周期。
聯(lián)系人: | 張經(jīng)理 |
---|---|
電話: | 400-023-6659 |
傳真: | 023-68798110 |
Email: | 843718693@qq.com |
QQ: | 843718693 |
微信: | Lotus-Smart |
微博: | lotusreader |
旺旺: | 諾塔斯智能科技有限公司 |
地址: | 重慶市江北區(qū)宏帆路36號(hào)宏帆天地1棟6樓 |