IE瀏覽器接入IC卡讀寫器實(shí)現(xiàn)M1卡的讀寫功能
- 2019-05-28 17:32:00
- 諾塔斯智能科技 原創(chuàng)
- 4230
基于ActiveX技術(shù)的ocx控件是實(shí)現(xiàn)網(wǎng)頁上讀寫IC卡的一個(gè)比較不錯(cuò)的方法,因?yàn)閛cx是com組件,通過其發(fā)布的接口,IE可以實(shí)現(xiàn)所有的功能。ActiveX不僅能適應(yīng)大部分編程語言,做到與編程語言無關(guān),還能將IC卡讀卡器集成到web中,使得在BS結(jié)構(gòu)中可以在web客戶端輕松的調(diào)用IC卡讀卡器,極大地改善了用戶體驗(yàn)。 只要為IC卡讀卡器或者NFC讀寫器發(fā)布相應(yīng)的ActiveX控件就可以實(shí)現(xiàn)在WEB客戶端使用IC卡讀卡器了,但是這種技術(shù)方案的最大缺點(diǎn)就是只支持IE瀏覽器,不支持其他的瀏覽器。這里我們僅以L3-U、L3-S兩款非接觸式IC卡讀寫器在IE瀏覽器和IE內(nèi)核的瀏覽器中實(shí)現(xiàn)對M1卡的讀寫功能。
第一、系統(tǒng)中注冊O(shè)CX控件,在開發(fā)包中我們提供了LotusCardActiveX.ocx這個(gè)文件,需要對它進(jìn)行注冊(這里不再贅述如何注冊ocx控件),可以在開發(fā)包中執(zhí)行RegOcx.bat這個(gè)批處理文件即可。注意,LotusCardActiveX.ocx所在的文件路徑不要有中文路徑,否則有可能提示控件注冊失敗。
第二、在頁面中引用正確的CLASSID,我們設(shè)備的CLASSID=CLSID:BD1874A5-3810-4639-8B70-3DDD607BAADB,在頁面中完整應(yīng)用如下:
<OBJECT ID=LotusCardDriver Visible=false WIDTH=0 HEIGHT=0 CLASSID="CLSID:BD1874A5-3810-4639-8B70-3DDD607BAADB"> </OBJECT>
第三,實(shí)現(xiàn)對M1卡的讀寫操作,這里僅僅介紹對M1卡的讀寫,對其它卡片的讀寫請參考對應(yīng)的文檔進(jìn)行。
function OnTest() { var nHandle = 0; //設(shè)備句柄 var bResult = 0; var strTextInfo = ""; nHandle = LotusCardDriver.OpenDevice("",0,0,0);//對IC卡讀寫器進(jìn)行設(shè)備初始化,如果IC卡讀寫是USB接口的,第一個(gè)參數(shù)為空;如果是IC卡讀寫器是RS232串口設(shè)備,請?jiān)诘谝粋€(gè)參數(shù)位置提供正確的端口號。 if(nHandle <=0 ) { alert("打開設(shè)備失敗!"); 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("密碼認(rèn)證失敗!"); 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("扇區(qū)1裝載密碼失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } bResult=LotusCardDriver.Authentication(nHandle, 96, 1); if(bResult!=1) { alert("扇區(qū)1密碼認(rèn)證失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } bResult = LotusCardDriver.WriteText(nHandle, 1, "春眠不覺曉處處蚊子咬夜來風(fēng)雨聲疙瘩知多少"); if(bResult!=1) { alert("扇區(qū)1寫文本失敗!"); LotusCardDriver.CloseDevice(nHandle); return; } strTextInfo = LotusCardDriver.ReadText(nHandle, 1); alert("扇區(qū)1文本:"+strTextInfo); LotusCardDriver.CloseDevice(nHandle); } </script>
第四、在頁面控件中調(diào)用OnTest()函數(shù)。
<INPUT id=test type=button value="讀卡器測試" onclick=OnTest()>以上內(nèi)容是基于IE瀏覽器接入IC卡讀寫器實(shí)現(xiàn)M1卡的讀寫功能的開發(fā)范例,用戶在使用我司產(chǎn)品進(jìn)行二次開發(fā)過程中,可以作為范例進(jìn)行參考和快速開發(fā)。如有疑問和需要技術(shù)支持,請聯(lián)系我司在線技術(shù)支持。
聯(lián)系人: | 張經(jīng)理 |
---|---|
電話: | 400-023-6659 |
傳真: | 023-68798110 |
Email: | 843718693@qq.com |
QQ: | 843718693 |
微信: | Lotus-Smart |
微博: | lotusreader |
旺旺: | 諾塔斯智能科技有限公司 |
地址: | 重慶市江北區(qū)宏帆路36號宏帆天地1棟6樓 |