簡體   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