<分区>
我的问题基于 ISO8583 事务消息标准。
我的问题陈述是开发一个应用程序,它将解码作为 HEX 格式输入提供的 ISO8583 消息。
例如:我的输入 = 0200B2200000001000000000000000800000201234000000010000011072218012345606A5DFGR021ABCDEFGHIJ 1234567890
我使用 jPOS 库解析这个十六进制代码,输出如下:
MTI:0200
字段 3:201234
字段 4:000000010000
Field-7 : 0110722180
字段 11:123456
Field-44 : A5DFGR
Field-105 : ABCDEFGHIJ 1234567890
现在我想解码这个解析后的输出,即将它转换成字符串格式。我想知 Prop 体是什么意思,比如是余额查询还是交易请求等。
所以,我的问题是,是否有任何工具可以用来理解 iso8583 消息的十六进制代码?
根据 1987 年、1993 年和 2003 年的 ISO 8583 规范,有大量方言。修改后的协议(protocol)在字段中混合使用 ASCII、二进制、BCD、EBCDIC 数据。
您的消息示例看起来类似于 OmniPay 主机到主机实现,除了字段 105 未被本规范使用。
在没有额外修改的情况下,它是由 https://iso8583.info/lib/OmniPay/H2H/msg 上的在线工具解析的
使用您的消息“二进制”表示:
0000: 30 32 30 30 42 32 32 30 │ 30 30 30 30 30 30 31 30 0200B22000000010
0010: 30 30 30 30 30 30 30 30 │ 30 30 30 30 30 30 38 30 0000000000000080
0020: 30 30 30 30 32 30 31 32 │ 33 34 30 30 30 30 30 30 0000201234000000
0030: 30 31 30 30 30 30 30 31 │ 31 30 37 32 32 31 38 30 0100000110722180
0040: 31 32 33 34 35 36 30 36 │ 41 35 44 46 47 52 30 32 12345606A5DFGR02
0050: 31 41 42 43 44 45 46 47 │ 48 49 4A 20 31 32 33 34 1ABCDEFGHIJ 1234
0060: 35 36 37 38 39 30 │ 567890
原始消息中有一些垃圾,但这不是解析器的错。 ))
--- # Cheef's parser (Limited version - 5 levels deep only)
- msg: # OmniPay H2H message
MTI: "0200" # Message Type ID.
DE000: "B220000000100000" # Primary bitmap // 1.3.4.7.11.44.
- BM0: # Fields at Primary Bitmap
DE001: "0000000000800000" # Secondary bitmap // 105.
- DE003: # PC
S01: "20" # Transaction Code. // Refund
S02: "12" # Account, from.
S03: "34" # Account, to.
DE004: "000000010000" # Amount, transaction. // 10000
- DE007: # Date and time, transmission
date: "0110" # Date, local transmission. // 2015.01.10
time: "722180" # Time, local transmission. // 00:22:20
DE011: "123456" # STAN.
- DE044: # Additional response data
len: "06"
- val:
RFU: "A5DFGR"
为多种方言定义的在线解析器,因此您可以使用您的消息数据并分析结果。