我想读的姓名,卡号,在信用卡到期日等。 但总是返回6d00
时调用SCardTransmit
。
我使用的是预定义AID,我用Google搜索是有效的(纠正我,如果我错了)。 这里的有:
AID_LIST = {
"A0000000421010",
"A0000000422010",
"A0000000031010",
"A0000000032010",
"A0000000041010",
"A0000000042010",
"A00000006900",
"A0000001850002"
}
提前致谢。
我不熟悉您使用这个API,但你必须发送以下序列的APDU命令:
- SELECT PSE(用于接触卡)中,由EMV在书1,11.3指定。 一个例子是“00A404000E315041592E5359532E444446303100”
- 随着SFI返回,可以读出记录,以找出支持艾滋病。 但是,你可以使用指定和调用选择AID,继第1册,12.3.3的准则预defineds AID通过“试错”做到这一点。
- 你既可以调用命令“GET处理选项”,看看有什么记录都可以阅读,也可以阅读所有可能的记录调用“读取记录”指令制作的可能记录的扫描。 在这些记录中的一个,你将有你正在寻找的数据。
通常在同一个记录,您将已经存储了持卡人的姓名,PAN和轨道2个自由选择数据(其中包含在到期日)。
该标签中列出了3册。
应用主账号(PAN) - 5A持卡人名字 - 5F20轨道2自由选择数据 - 9F20
有关磁道2有用的信息: http://en.wikipedia.org/wiki/Magnetic_stripe_card
序列的样品以上: http://code.google.com/p/javaemvreader/wiki/ExampleOutput
EMV规格: http://www.emvco.com/specifications.aspx?id=223
可能的返回代码,如61XX,9000,等在ISO 7816以下列出的是一个很好的概述: http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx
你需要查找/购买ISO 7816,EMV规范和您的供应商卡规范,否则你不知道你在做什么。