我在 C 平台上工作,我想读取卡片的 AFL。
如果之前的命令,选择 AID,不给我 PDOL 标签,没关系:我可以毫无问题地阅读 AFL。
但是我需要编写一个可以生成 GET PROCESSING OPTION 的方法,而不管 PDOL 是什么。
所以问题是:
我必须映射每个可能的 TAG 吗?
命令与正确的数据?看下面的例子:
选择援助响应
PDOL:
9F 1A 02
所以我必须输入终端国家代码,在我的情况下意大利:380所以 GPO 调用是:
80 A0 00 00 04 83 02 03 80 00
但是我得到的回复是
6D 00
: 指令代码不支持或无效我哪里错了?
我正在 Ingenico Pos(销售点)上编程。
最佳答案
很高兴知道您非常了解 PDOL 的概念。据我了解您的问题,如果不存在 PDOL,您可以轻松构建 GPO 命令。我认为您对编写通用函数来构造 GPO APDU 命令有疑问。
首先我想告诉你,如果 SELECT 响应中存在 PDOL 信息,那么你应该在 GPO 命令 APDU 中发送 PDOL 数据,否则卡应用程序可能会抛出一些错误。
因此,当您在 SELECT 命令中接收到 PDOL 时,您可以设置一个指示器。如果 PDOL 不存在,您可以简单地发送 80 A8 00 00 02 83 00 00,如果您的指标表明需要 PDOL,则只需解析 PDOL 和来自 SELECT 响应,并为 PDOL 数据准备一个值(如您在您的问题)将在 GPO 命令 APDU 中发送。
如果您不知道什么值,那么您可以简单地在值字段中填充十六进制零。
以您的示例为例:80 A8 00 00 04 83 02 03 80 00。这是正确的命令(我已更正 INS 字节)。或者您也可以发送 80 A8 00 00 04 83 02 00 00 00 (PDOL 值替换为零)
我认为这个解释可以帮助您获得这两个问题的答案。尝试一下,如果需要进一步说明,请告诉我们。
关于apdu - EMV - 带有 PDOL 的 GPO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249292/