0

我已成功检索到 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 创建 Generate AC 命令?

4

1 回答 1

6

基于 CDOL1,您接下来将组装 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

然后,您将该数据包装到 GENERATE AC 命令 APDU 的 DATA 字段中:

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]
于 2015-05-28T11:18:34.630 回答