我需要编写一种方法,无论带有EMV非接触式的PDOL,都可以生成GET PROCESSING OPTION。
如何用正确的数据格式化GPO命令?

这是数据:

6F 4E 84 07 A0 00 00 00 03 20 10 A5 43 50 0D 56 49 53 41 20 45 4C 45 43 54 52 4F 4E 87 01 01 9F 38 18 9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C 01 9F 37 04 5F 2D 08 69 74 65 6E 64 65 66 72 BF 0C 08 9F 5A 05 31 09 78 03 80

PDOL是:
9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C 01 9F 37 04

什么是正确的GPO命令APDU?
谢谢。

最佳答案

GPO命令的结构如下:

CLA '80'
INS 'A8'
P1 '00'
P2 '00'
Lc var.
Data PDOL Related Data
Le '00'


根据您的PDOL,您需要提供以下数据:

9F66 (?) 4 bytes
9F02 (amount authorized) 6 bytes
9F03 (amount other) 6 bytes
9F1A (terminal country code) 2 bytes
95 (TVR - Terminal Verification Results) 5 bytes
5F2A (terminal currency code) 2 bytes
9A (transaction date) 3 bytes
9C (transaction type) 1 bytes
9F37 (unpredictable number) 4 bytes


(您将需要解析PDOL,但您也可以使用在线TVR decoder来解析它。)

基本上,您需要使用所请求标签的值(按它们出现的顺序)填充DOL。例如,如果仅填充金额,则DOL如下所示:

000000001122334455660000000000000000000000000000000000000000000000

您的GPO命令将为:

80A8000023832100000000112233445566000000000000000000000000000000000000000000000000
            ^^


十六进制值21(即33)是DOL的长度。

希望这可以帮助。您可以参考EMV规范以了解更多详细信息。 https://www.emvco.com/emv-technologies/contactless/

07-26 02:19