繁体   English   中英

在 java 中发布 iso8583

[英]Post iso8583 in java

如何在 java 中收集和发送 iso 8583 格式的消息? 像这样的东西:

30 38 30 30 82 20 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 11 13 12 53 20 12 34 56 03 01

我尝试使用库https://github.com/imohsenb/ISO8583-Message-Client-java进行构建。 收集不正确。

30 38 30 30 82 20 08 00 22 20 00 00 00 00 00 00 00 00 00 00 11 13 12 53 20 12 34 56 03 01

代码:

public class ClientSocket {
    public static void main(String[] args) throws ISOException, ISOClientException, IOException {
        ISOMessage isoMessage = ISOMessageBuilder.Packer(VERSION.V1987)
                .networkManagement()
                .mti(MESSAGE_FUNCTION.Request, MESSAGE_ORIGIN.Acquirer)
                .processCode("0000000")
                .setField(FIELDS.F7_TransmissionDataTime,  "1113125320")
                .setField(FIELDS.F11_STAN,  "1234560301")
                .setHeader("303830308220")
                .build();

        ISOClient client = ISOClientBuilder.createSocket("172.20.104.69", 5803)
                .build();
        System.out.println("isoMessage " + isoMessage);

        client.connect();
        String response = Arrays.toString(client.sendMessageSync(isoMessage));
        System.out.println("response = " + response);
        client.disconnect();
    }
}

解析您从代码中获得的消息:

30 38 30 30 82 20 - 您设置的消息 header(它包含看起来像 MTI 的字符串 0800 - 这是您的想法吗?)

08 00 - 网络管理的实际 MTI

22 20 00 00 00 00 00 00 - bitmap 表示存在字段 3,7,11

00 00 00 - 处理代码(字段 3)

00 - 处理代码后填充额外的 00 字节(可能是由于您将处理代码设置为奇数个字符和库,并且它没有按应有的方式截断)

11 13 12 53 20 - 日期/时间(字段 7)

12 34 56 - 斯坦(第 11 场)

03 01 - 您设置为 STAN 的字符,但它们不会被视为这样,因为根据 ISO 规范, stan 是 6 位数字

查看目标消息很难理解您试图实现的目标。

我假设您要实现的实际上是一条不同的消息-它以 ASCII 中的 MTI 开头,包含第二个 bitmap,表示存在字段 7,11 和 70。

字段 7 将是:11 13 12 53 20

字段 11 为:12 34 56

字段 70 将是:03 01

这是你要找的吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM