EMV阅读PAN代码

时间:2018-04-30 16:17:36

标签: apdu emv

我需要通过芯片读取每张可能卡的PAN代码。 在我的工作中,我只能使用C和我没有惯例,可以帮助我完成这项无聊的任务。 这就是我使用的APDU步骤:

1)SELECT 1PAY.SYS.DDF01

00 A4 0400 0E 315041592E5359532E4444463031    

然后从响应中00 C0 0000 22 315041592E5359532E4444463031读取所有数据。 完成回复:

6f 20 e 84 31 50 41 59 2e 53 59 53 2e 44 44 46 30 31 a5 e 88 1 1 5f 2d 69 8 74 65 6e 66 72 65 73 90

2)READ RECORD以获取特定的AID

00 B2 010C 00 

完成回应:

70 17 61 15 4f 7 a0 0 0 0 4 30 60 50 7 4d 41 53 54 52 45 4f 87 1 1 90

3)SELECT AID(在我的情况下,AID是前一个响应中的A0000000043060)

00 A4 0400 07 A0000000043060

同样在这种情况下,我有回复:61 36,所以我重新调用命令:

00 C0 0000 36 A0000000043060

完成回应:

6f 0 41 45 53 52 4f 54 87 1 1 34 84 a0 7 0 0 4 30 60 a5 29 50 7 4d 5f 2d 8 69 74 65 6e 72 66 65 73 bf c f 9f 4d 2 b a 9f 6e 3 7 80 0 0 30 30 0 90

现在我使用的每个命令都会收到错误信息。 我不明白我是否必须使用READ DATA,READ RECORD,GET PROCESSING OPTIONS或其他东西。 你能给我一个关于我现在要做什么的小贴士吗?

我需要获得卡片的16个字符代码,通常是卡片上清晰印刷的代码。

感谢所有人

1 个答案:

答案 0 :(得分:4)

智能卡(支付芯片卡)上印刷的8字节(16位)代码可以检索。此信息是Tag 57中记录中个性化的“Track 2 Equivalent Data”的一部分。

您可以对此“Track 2等效数据”的初始8字节进行切片以获取代码。

现在如何获得“跟踪2等效数据”:

  1. 选择付款申请(此处不包括PSE / PPSE流程,因为您可以这样做)

  2. 发送GPO命令。通常,如果GPO命令APDU中不需要PDOL数据,则80 A8 00 00 02 83 00是GPO的APDU。 (如果SELCT命令的响应中不存在9F38标记,则只需发送此APDU,否则必须创建PDOL)。有关GPO响应的更多详细信息,请参见EMV 4.3第3册第6.5.8节。

  3. 您将在GPO的响应中获得AFL,并根据AFL读取应用程序中的所有可用记录。通常情况下,可以在2或3个初始记录中找到跟踪2个数据。

    要了解AFL的编码,可以参考第10.2节EMV 4.3第3册。

    要理解READ RECORD APDU结构,请参阅EMV 4.3第1册第11.2节。

  4. 其中一条记录必须包含标记57,您可以获取该值。