EMV TLV Java功能

Jua*_*anD 5 java function emv tlv

我正在寻找一种方法来转换使用Java的EMV响应,就像使用此在线选项一样:

http://www.emvlab.org/tlvutils/

你把这样的EMV响应放在哪里:

6f3a8407a0000000031010a52f500b56495341204352454449548701015f2d086573656e707466729f12074352454449544f9f1101019f38039f1a02

并且它会完美展示你的一切,我开始自己做一些事情然后我意识到也许我们可以有两个9F38(PDOL)字符串不需要两个相同的标签因为我知道这是不可能的但是标签的价值可能在9F和下一个标签的开头是38,这会给我一个错误......现在我提到它,这可能吗?因为这是我停止做自己的功能的主要原因之一..

你们有没有写过这样的功能吗?

谢谢!

aus*_*984 7

https://github.com/binaryfoo/emv-bertlv应该做的伎俩.

使用您的示例,以下代码:

List<DecodedData> decoded = new RootDecoder().decode("6f3a8407a0000000031010a52f500b56495341204352454449548701015f2d086573656e707466729f12074352454449544f9f1101019f38039f1a02", "EMV", "constructed");
new DecodedWriter(System.out).write(decoded, "");
Run Code Online (Sandbox Code Playgroud)

将输出:

[6F (FCI template)] 8407A0000000031010A52F500B56495341204352454449548701015F...1A02
[84 (dedicated file name)] A0000000031010
[A5 (FCI proprietary template)] 500B56495341204352454449548701015F2D086573656E707466729F...1A02
  [50 (application label)] VISA CREDIT
  [87 (application priority indicator)] 01
  [5F2D (language preference)] esenptfr
  [9F12 (application preferred name)] CREDITO
  [9F11 (issuer code table index)] 01
  [9F38 (PDOL - Processing data object list)] 9F1A02
    9F1A (terminal country code) 2 bytes
Run Code Online (Sandbox Code Playgroud)


arv*_*ved 3

该项目有处理 EMV 数据的代码http://code.google.com/p/javaemvreader/