2

我一直在看 J8583:http: //j8583.sourceforge.net/xmlconf.html

这是一个很棒的 Api,维护得很好,对作者/开发者表示敬意。

我想知道是否有人成功地将它用于 EMV 交易和/或图书馆是否可以处理这些数据和/或这样做是否安全。

看起来好像我需要使用复合自定义字段来查看主位图的字段 55。如果数据存在,那么我需要调查 EMV 标签并根据需要进行解析。

我的示例 ISO 消息如下所示:

666600000000000002001495F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9F0902008C9F100706010A039000009F1A0201249F2608423158936ED6C38F9F2701809F3303E0B0C89F34034103029F3501229F360200019F3704ACAC66E89F5800DF0100DF0200DF0400

6666 前缀是我为测试这种情况而设置的模板,它只有 LLLVAR 类型的字段 55

如果我们要查看解码 EMV 数据,我们可以使用http://www.emvlab.org/tlvutils/并粘贴:

5F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9F0902008C9F100706010A039000009F1A0201249F2608423158936ED6C38F9F2701809F3303E0B0C89F34034103029F3501229F360200019F3704ACAC66E89F5800DF0100DF0200DF0400

将产生一个我正在有效地尝试重现的结果表。

我的输出很简单:

Output: 

666600000000000002001495F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9F0902008C9F100706010A039000009F1A0201249F2608423158936ED6C38F9F2701809F3303E0B0C89F34034103029F3501229F360200019F3704ACAC66E89F5800DF0100DF0200DF0400
Message type: 6666
FIELD TYPE    VALUE
   55 LLLVAR [5F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9]

因为我还没有处理自定义字段,因为我想先询问 SO 社区他们的想法。

提前感谢您的任何帮助/建议。

还有...如果有人读到这篇文章有 1500 个代表,也许 J8583 si 值得拥有自己的标签?

4

1 回答 1

3

发帖以防其他人偶然发现这篇文章。

已确定 J8583 库不适用于 EMV 数据。它是一个很棒的库,但不适合解析 BER-TLV 标签的任务。
使用复合字段也是不合适的,因为这些子字段是通过索引访问的,并且是否缺少一个字段并不明显。

无论如何,好消息 - 这个库对于解析标签来说是不可思议的:https ://github.com/binaryfoo/emv-bertlv

如果您已经在使用它,您可以将它包装在 J8583 库的第 55 字段中。我认为55被认为是标准。

玩得开心!:)

于 2015-08-19T14:17:40.610 回答