hex - iso8583报文编解码

标签 hex decoder iso8583

<分区>

我的问题基于 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"

为多种方言定义的在线解析器,因此您可以使用您的消息数据并分析结果。

关于hex - iso8583报文编解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25541185/

相关文章:

colors - "Google Plus Red"是什么十六进制颜色代码?

decimal - 如何将大数转换为十进制?

sockets - JPOS QMUX的配置

iso8583 - 如何回复无效的 ISO8583 消息

C#串口读取HEX数据

android - 使用 mediacodec 确定视频帧率和音频采样率

json - Go - JSON解码器没有初始化我的结构

c++ - 分配 avpkt.size 时,avcodec_decode_video2 崩溃

java - 应该如何在生产环境中配置/使用 jPOS?

c++ - 十六进制的 4 字节日期时间转换为可读