我正在尝试使用我的智能卡读卡器与卡进行通信,我正在使用 Jaccal 以便从我的 Java SE 应用程序中执行此操作。我遇到的问题是,即使我很确定我的 VERIFY 命令是正确的(离线 PIN),我仍然不断收到状态字 = 69 85(不满足使用条件)。所以我的命令看起来像这样。
验证命令:
00 20 00 80 08 24 94 94 FF FF FF FF FF
PIN 码是 9494,因为这是一张测试卡,我不介意公开 PIN 码。
问候维克
在EMV 4.3 book 3, section '6.3.5 Coding of the Status Bytes' 中, Status word=69 85 被定义为“Command not allowed”(“使用条件不满足”,如您所述)
在您的应用程序和卡之间提供整个 EMV 对话将有助于故障排除,但这里有一些可能发生此问题的常见情况:
“此功能可以在读取应用程序数据之后和终端动作分析完成之前的任何时间执行。”
为了验证您是否遵守 VERIFY 命令的执行顺序,以下是典型执行顺序的示例:
检查您的卡是否支持离线 PIN 验证:
使用验证命令的正确顺序如下
选择支付应用
00A4040007A000000003101000
(or 00A4040007A000000004101000, or whatever application you want to use)
获取处理选项
80A8000002830000
(possibly with adapted data objects according to PDOL)
(可选)检查当前的 PIN 尝试计数器
80CA9F1700
验证 PIN(如果卡支持使用纯文本 PIN 进行验证)
002000800824xxxxFFFFFFFFFF
(where xxxx is a 4 digit PIN)
如发现的那样,将只接受一个 PIN VERIFY 命令。