EMV - 无法从 CDOL1 生成 AC 命令

EMV - Unable to Generate AC command from CDOL1

我已成功检索到 CDOL1,它是

9F02 06 - Authorised amount of the transaction (excluding adjustments)
9F03 06 - Secondary amount associated with the transaction representing a cashback amount
9F1A 02 - the country of the terminal
95   05 - Status of the different functions as seen from the terminal
5F2A 02 - the currency code of the transaction
9A   03 - Local date that the transaction was authorised
9C   01 - the type of financial transaction 
9F37 04 - Value to provide variability and uniqueness to the generation of a cryptogram

如何基于此 CDOL1 创建生成 AC 命令?

基于 CDOL1,您接下来 assemble CDOL1 相关数据(即 CDOL1 中的标签引用的数据对象值列表):

[9F02 06   (Amount, authorized, numeric)]:   000000001000 (that's 1.00)
[9F03 06   (Amount, other, numeric)]:        000000000000 (that's 0.00)
[9F1A 02   (Terminal country code)]:         0040 (Austria)
[95 05     (Terminal verification results)]: 0000000000 (or whatever TVR you need)
[5F2A 02   (Transaction currency code)]:     0978 (Euro)
[9A 03     (Transaction date)]:              150528 (2015-05-28)
[9C 01     (Transaction type)]:              00 (whatever transaction type need)
[9F37 04   (Unpredictable number)]:          12345678

然后您将该数据包装到生成 AC 命令 APDU 的数据字段中:

80 AE 5000 1D 000000001000 000000000000 0040 0000000000 0978 150528 00 12345678 00

作为对此的响应,您将获得一个包含在由多个数据对象组成的标记 77(格式 2)中的响应消息数据字段。例如。如果没有执行 CDA,这可能看起来像:

77 xx
  [Cryptogram Information Data]     9F27 01 80
  [Application Transaction Counter] 9F36 02 001B
  [Application Cryptogram]          9F26 08 B31B2D16 69860BD5
  [Issuer Application Data]         9F10 yy ...
9000 [SW: success]

或者,您也可以获得包含在标签 80(格式 1)中的响应消息数据字段。在这种情况下,该值是隐式数据对象的串联列表(标签 + 长度字段不存在):

80 xx
  [9F27 01 (Cryptogram Information Data)]:     80
  [9F36 02 (Application Transaction Counter)]: 001B
  [9F26 08 (Application Cryptogram)]:          9F26 08 B31B2D16 69860BD5
  [9F10 yy (Issuer Application Data)]:         ...
9000 [SW: success]