java - EMV - SELECT 未获取 PDOL

标签 java smartcard apdu emv

好的,所以我选择了“1PAY.SYS.DDF01”PSE 并得到了以下响应: (“00 A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31”) “61 1E”,所以我执行了 GET Response 命令并得到了以下输出: (“00 C0 00 00 1E”) [“6F 1C 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 0A 88 01 01 5F 2D 04 68 65 65 6E”]

TLV decode 1PAY.SYS.DDF01

然后我转到 READ RECORDS 命令(使用 sfi=1)并得到: (“00 B2 01 0C 00”) 并得到回复: “6C 1E” 所以我又这样做了: (“00 B2 01 0C 1E”) 并得到回复: [“70 1C 61 1A 4F 07 A0 00 00 00 03 10 10 50 0C 56 69 73 61 20 50 72 65 70 61 69 64 87 01 01”]

TLV decode sfi

之后,当我尝试读取第二条记录的记录时: (“00 B2 02 0C 00”) 我收到这样的回复:“6A 83”(未找到记录)

现在我尝试选择我们获得的援助的文件: “61 25”(使用此文件执行“GET RESPONSE”操作) 然后我做了“获取响应”: (“00 C0 00 00 25”) 并得到这个: [“6F 23 84 07 A0 00 00 00 03 10 10 A5 18 50 0C 56 69 73 61 20 50 72 65 70 61 69 64 87 01 01 5F 2D 04 68 65 65 6E”] [TLV解码AID] 3

如您所见,我没有任何 PDOL,有人可以帮助我吗?

最佳答案

PDOL 在 ADF 选择响应数据中是可选的(请参阅 EMV 4.3 第 1 册,表 45)。

在本例中,GET PROCESSING OPTIONS 中会发送一个空标签“83”,引用 EMV 4.3 第 3 册第 6.5.8.3 节:

The data field of the command message is a data object coded according to the PDOL provided by the ICC, as defined in section 5.4, and is introduced by the tag '83'. When the data object list is not provided by the ICC, the terminal sets the length field of the template to zero. Otherwise, the length field of the template is the total length of the value fields of the data objects transmitted to the ICC.

获取处理选项则为:80 A8 00 00 02 83 00 00

关于java - EMV - SELECT 未获取 PDOL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56876921/

相关文章:

java - 如何在 Intellij 中单步执行 Swing 应用程序

authentication - 如何用ACR122U验证NTAG213

android - 写入仿真卡 Android HCE (Host card Emulation)

java - eVRC 智能卡

java - 在 Java 中使用子字符串从字符串中获取整数和字符?

java - 如何检索绑定(bind)在数据库表中的jComboBox中的对象并将其存储到另一个表

java - 如何检查 EditText 在 Android/Java 中是否有值

internet-explorer - 从浏览器读取智能卡

java - Xades4J 兼容 PKCS11 native 库中应该包含什么?

java - Java 7 Windows 64 位上的 PKCS#11