apdu - EMV - 带有 PDOL 的 GPO

标签 apdu emv

我在 C 平台上工作,我想读取卡片的 AFL。
如果之前的命令,选择 AID,不给我 PDOL 标签,没关系:我可以毫无问题地阅读 AFL。
但是我需要编写一个可以生成 GET PROCESSING OPTION 的方法,而不管 PDOL 是什么。

所以问题是:

  • 尽管有 PDOL,我如何编写一种通用的方法?
    我必须映射每个可能的 TAG 吗?
  • 如何格式化 GPO
    命令与正确的数据?看下面的例子:

  • 选择援助响应
    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/

    相关文章:

    emv - TVR 位与 TAC Online 匹配,但交易未上线?

    java - SmartCardIO EMV 读卡器,仅通过 ATR 编号查找我的卡类型

    java - 将 ECPublicKey 从 JavaCard 恢复到 Java

    java - 使用APDU命令获取卡的一些信息

    android - NFC Offhost 路由到 Nexus 5X 和 Nexus 6P 上的 UICC

    c - 如何在c中从ingenico设备获取apdu命令日志?

    java - 从 java 智能卡 APDU 收到奇怪的数据?

    java - 如何解码标签 77 中包含的 APDU GPO 响应

    java - 使用 EMV 芯片读取信用卡并将数据写入基于 Web 浏览器的 POS 屏幕

    Javax SmartCardIO : Sending 0x00 to Read Record is not returning length