利用IE瀏覽器接入IC卡讀寫器對非接觸式CPU卡的讀寫
- 2019-05-29 16:50:00
- 諾塔斯智能科技 原創
- 5157
B/S(Brower/Server,瀏覽器/服務器)模式又稱B/S結構,是Web興起后的一種網絡結構模式。Web瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用;
現在越來越多的B/S架構的應用,然而在針對嵌入式開發過程中,特別是對非接觸式IC卡,CPU卡的讀寫等一系列的嵌入式開發,基于瀏覽器的B/S架構就顯得有些“力不從心”了。
為了在B/S(Brower/Server,瀏覽器/服務器)模式中使用IC卡讀寫器進行對非接觸式CPU卡的讀寫,我們在這里以Actice X控件為例,提供基于Actice X通過瀏覽器對非接觸式CPU卡的讀寫范例,供大家參考。由于Actice X控件只能在IE瀏覽器或基于IE內核的瀏覽器上才能使用。因此,Actice X控件的使用也是有局限性的,這也是基于B/B架構環境下嵌入式開發的一個軟肋。
這里以諾塔斯L3-U非接觸式CPU卡讀寫器在在IE瀏覽器或者基于IE內核的瀏覽器環境下,利用Active X控件實現對非接觸式CPU卡的讀寫操作,詳細步驟如下:
第一、系統中注冊OCX控件,在開發包中我們提供了LotusCardActiveX.ocx這個文件,需要對它進行注冊(這里不再贅述如何注冊ocx控件),可以在開發包中執行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內核的瀏覽器環境下,利用Active X控件實現對非接觸式CPU卡的讀寫操作,范例代碼如下:
function OnTest()
{
var nHandle = 0; //設備句柄
var bResult = 0;
var strTextInfo = "";
var strMac = "";
nHandle = LotusCardDriver.OpenDevice("",0,0,0);//讀寫器設備初始化,如果采用USB免驅動IC卡讀寫器,第一個參數為空;
如果采用RS232串口免驅的IC卡讀寫器,第一個參數為對應的端口號;如果采用TCP/IP通信的IC卡讀寫器,第一個參數為當前設備的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("執行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卡的一個讀寫驗證,用戶可以根據廠商提供的非接觸式CPU卡配套的指令進行二次開發,我們將提供技術支持,讓客戶實現快速開發,從而縮短產品開發周期。
| 聯系人: | 張經理 |
|---|---|
| 電話: | 400-023-6659 |
| 傳真: | 023-68798110 |
| Email: | 843718693@qq.com |
| QQ: | 843718693 |
| 微信: | Lotus-Smart |
| 微博: | lotusreader |
| 旺旺: | 諾塔斯智能科技有限公司 |
| 地址: | 重慶市江北區宏帆路36號宏帆天地1棟6樓 |
-
在線客服

-
關注微信

-
網上商城

