最近在研究NFC讀取銀行卡信息的東西,將支持NFC功能的手機靠近公交卡、銀行卡等帶有芯片的IC卡上,可迅速讀取卡內(nèi)余額、卡的信息,網(wǎng)上各種搜索,此方面的資源甚缺,摸索了一下,幸虧一位牛人博客地址:點擊直達。收益良多,現(xiàn)在總結一下自己可以用到的東西,作為備忘。
ADT運行NFC讀取Demo項目,真機調(diào)試,關鍵代碼如下:
指令是PBOC的金融卡的標準指令,具體的組裝還在研究,但是在上面提及到的大神的博客中獲取到2個關鍵指令,1是復位指令,借記卡和貸記卡的指令不一樣,然后發(fā)送讀取卡號即可。返回的數(shù)據(jù)是以70開頭的TLV模板數(shù)據(jù):70425F24032405315A0A6217003110002217498F9F0702FF008E0C000000000000000002031F009F0D05D86004A8009F0E0500109800009F0F05D86804F8005F280201569000,其中6217003110002217498F就是卡號。
相關代碼塊:
<span style='font-size:18px;'>//貸記卡發(fā)送復位指令:00A4040008A000000333010102 //借記卡發(fā)送復位指令:00A4040008A000000333010101 //讀取銀行卡卡號指令:00B2011400 //返回數(shù)據(jù):70425F24032405315A0A6217003110007217498F9F0702FF008E0C000000000000000002031F009F0D05D86004A8009F0E0500109800009F0F05D86804F8005F280201569000 byte []b = tag.transceive(ReaderManager.hexStringToByte('00A4040008A000000333010101')); b = tag.transceive(ReaderManager.hexStringToByte('00B2011400')); // b = tag.transceive(ReaderManager.hexStringToByte('00B2010C1D'));// b = tag.transceive(ReaderManager.hexStringToByte('00B2020C00')); System.out.println('返回數(shù)據(jù) ' Util.toHexString(b));</span>
聯(lián)系客服