如何从Java中读取EMV SmartCard中的PAN
作者:互联网
我需要通过智能卡读卡器读取Maestro / Mastercard的帐号.我正在使用Java 1.6及其javax.smartcardio包.我需要发送APDU命令,它会询问存储在卡芯片上的EMV应用程序的PAN号.问题是,我找不到常规的字节数组来构造APDU命令,它会在任何地方返回所需的数据……
解决方法:
您不应该进一步包装APDU. API层应该处理这个问题.
看起来0x6D00响应只是意味着应用程序不支持INS.
现在只是进行故障排除,但您确实是通过选择万事达卡应用程序开始的,对吧?
即这样的事情:
void selectApplication(CardChannel channel) throws CardException {
byte[] masterCardRid = new byte[]{0xA0, 0x00, 0x00, 0x00, 0x04};
CommandAPDU command = new CommandAPDU(0x00, 0xA4, 0x04, 0x00, masterCardRid);
ResponseAPDU response = channel.transmit(command);
return response.getData();
}
标签:apdu,emv,smartcard,java 来源: https://codeday.me/bug/20191004/1852158.html