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