我正在开始一个新项目,我是新用的EMV阅读器和Javax SmartCardIO.
我有每种类型的卡的RID列表,但是我唯一可以在不知道卡类型的情况下访问的是ATR,我想知道是否有办法获得RID或卡类型只有这个信息,欢迎任何帮助.
提前致谢!
编辑:
我尝试使用此方法执行select PSE命令:
public static byte[] selectPSE(CardChannel channel) throws CardException {
byte[] selectPSE = {(byte)0x00, (byte)0xA4, (byte)0x04, (byte)0x00, (byte)0x0E, (byte)0x31, (byte)0x50, (byte)0x41, (byte)0x59, (byte)0x2E, (byte)0x53, (byte)0x59, (byte)0x53, (byte)0x2E, (byte)0x44, (byte)0x44, (byte)0x46, (byte)0x30, (byte)0x31};
CommandAPDU command = new CommandAPDU(selectPSE);
ResponseAPDU response = channel.transmit(command);
System.out.println(response.getBytes());
return response.getBytes();
}
Run Code Online (Sandbox Code Playgroud)
但是,它只与AMEX和Visa合作,我得到了两张万事达卡(信用卡和借记卡)的错误6a82.
这看起来很奇怪,据我所知,所有主要的发卡机构(包括万事达卡)都使用1PAY.SYS.DDF01,我可以通过试用和错误的AID得到我想要的信息,但我不认为这是最好的解.