SCardTransmit()总是返回6d00(SCardTransmit() always ret

2019-07-03 10:36发布

我想读的姓名,卡号,在信用卡到期日等。 但总是返回6d00时调用SCardTransmit

我使用的是预定义AID,我用Google搜索是有效的(纠正我,如果我错了)。 这里的有:

AID_LIST = { 
  "A0000000421010",
  "A0000000422010",
  "A0000000031010",
  "A0000000032010",
  "A0000000041010",
  "A0000000042010",
  "A00000006900",
  "A0000001850002"
}

提前致谢。

Answer 1:

我不熟悉您使用这个API,但你必须发送以下序列的APDU命令:

  1. SELECT PSE(用于接触卡)中,由EMV在书1,11.3指定。 一个例子是“00A404000E315041592E5359532E444446303100”
  2. 随着SFI返回,可以读出记录,以找出支持艾滋病。 但是,你可以使用指定和调用选择AID,继第1册,12.3.3的准则预defineds AID通过“试错”做到这一点。
  3. 你既可以调用命令“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



Answer 2:

你需要查找/购买ISO 7816,EMV规范和您的供应商卡规范,否则你不知道你在做什么。



文章来源: SCardTransmit() always return 6d00