IE瀏覽器接入IC卡讀寫器實現M1卡的讀寫功能
- 2019-05-28 17:32:00
- 諾塔斯智能科技 原創
- 4983
基于ActiveX技術的ocx控件是實現網頁上讀寫IC卡的一個比較不錯的方法,因為ocx是com組件,通過其發布的接口,IE可以實現所有的功能。ActiveX不僅能適應大部分編程語言,做到與編程語言無關,還能將IC卡讀卡器集成到web中,使得在BS結構中可以在web客戶端輕松的調用IC卡讀卡器,極大地改善了用戶體驗。 只要為IC卡讀卡器或者NFC讀寫器發布相應的ActiveX控件就可以實現在WEB客戶端使用IC卡讀卡器了,但是這種技術方案的最大缺點就是只支持IE瀏覽器,不支持其他的瀏覽器。這里我們僅以L3-U、L3-S兩款非接觸式IC卡讀寫器在IE瀏覽器和IE內核的瀏覽器中實現對M1卡的讀寫功能。
第一、系統中注冊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>
第三,實現對M1卡的讀寫操作,這里僅僅介紹對M1卡的讀寫,對其它卡片的讀寫請參考對應的文檔進行。
function OnTest() { var nHandle = 0; //設備句柄 var bResult = 0; var strTextInfo = ""; nHandle = LotusCardDriver.OpenDevice("",0,0,0);//對IC卡讀寫器進行設備初始化,如果IC卡讀寫是USB接口的,第一個參數為空;如果是IC卡讀寫器是RS232串口設備,請在第一個參數位置提供正確的端口號。 if(nHandle <=0 ) { alert("打開設備失敗!"); return; } LotusCardDriver.Beep(nHandle,10);//讀卡器蜂鳴器 bResult = LotusCardDriver.GetCardNo(nHandle,38); if(bResult!=1) { alert("尋卡失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } alert("卡號:"+LotusCardDriver.CardNo);//獲取IC卡UID的方法 LotusCardDriver.CardPassWord="FFFFFFFFFFFF"; bResult=LotusCardDriver.LoadKey(nHandle, 96, 0); if(bResult!=1) { alert("裝載密碼失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } bResult=LotusCardDriver.Authentication(nHandle, 96, 0); if(bResult!=1) { alert("密碼認證失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } bResult = LotusCardDriver.Read(nHandle, 2); if(bResult!=1) { alert("讀2塊失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } alert("2塊:"+LotusCardDriver.ReadWriteBuffer); LotusCardDriver.ReadWriteBuffer="0123456789abcdef0123456789abcdef"; bResult = LotusCardDriver.Write(nHandle, 2); if(bResult!=1) { alert("寫2塊失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } alert("寫2塊OK"); LotusCardDriver.CardPassWord="FFFFFFFFFFFF"; bResult=LotusCardDriver.LoadKey(nHandle, 96, 1); if(bResult!=1) { alert("扇區1裝載密碼失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } bResult=LotusCardDriver.Authentication(nHandle, 96, 1); if(bResult!=1) { alert("扇區1密碼認證失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } bResult = LotusCardDriver.WriteText(nHandle, 1, "春眠不覺曉處處蚊子咬夜來風雨聲疙瘩知多少"); if(bResult!=1) { alert("扇區1寫文本失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } strTextInfo = LotusCardDriver.ReadText(nHandle, 1); alert("扇區1文本:"+strTextInfo); LotusCardDriver.CloseDevice(nHandle); } </script>
第四、在頁面控件中調用OnTest()函數。
<INPUT id=test type=button value="讀卡器測試" onclick=OnTest()>以上內容是基于IE瀏覽器接入IC卡讀寫器實現M1卡的讀寫功能的開發范例,用戶在使用我司產品進行二次開發過程中,可以作為范例進行參考和快速開發。如有疑問和需要技術支持,請聯系我司在線技術支持。
聯系人: | 張經理 |
---|---|
電話: | 400-023-6659 |
傳真: | 023-68798110 |
Email: | 843718693@qq.com |
QQ: | 843718693 |
微信: | Lotus-Smart |
微博: | lotusreader |
旺旺: | 諾塔斯智能科技有限公司 |
地址: | 重慶市江北區宏帆路36號宏帆天地1棟6樓 |