0

我正在尝试读取信用卡上的姓名、卡号、有效期等。但总是6d00在调用时返回SCardTransmit

我正在使用预定义的 AID,我用谷歌搜索它是有效的(如果我错了,请纠正我)。这是:

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

提前致谢。

4

2 回答 2

14

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

  1. SELECT PSE(用于联系人卡片),由 EMV 在第 1 册第 11.3 节中指定。一个例子是“00A404000E315041592E5359532E444446303100”
  2. 返回 SFI 后,您可以阅读记录以找出支持的 AID。但是,您可以按照第 1 册 12.3.3 中的指南,使用您指定的预定义 AID 并调用 SELECT AID 通过“反复试验”来做到这一点。
  3. 您可以调用命令“GET PROCESSING OPTIONS”来查看哪些记录可供读取,或者您可以调用“READ RECORD”命令读取所有可能的记录,以扫描可能的记录。在其中一个记录中,您将拥有您正在寻找的数据。

通常在同一记录中,您将存储持卡人姓名、PAN 和 Track 2 任意数据(其中包含到期日期)。

标签列在第 3 册中。

应用程序主帐号 (PAN) - 5A 持卡人姓名 - 5F20 Track 2 可自由支配数据 - 9F20

关于 Track 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

ISO 7816 中列出了可能的返回码,例如 61XX、9000 等。这里有一个很好的概述: http: //www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx

于 2012-10-31T01:41:26.743 回答
3

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

于 2012-10-30T07:52:18.537 回答