Как упаковать ISO-сообщение принимающему хосту
Я пытаюсь упаковать сообщение ISO 8583, используя J8583:
IsoMessage m = mf.newMessage(0x200); // You must use 0x200, 0x400, etc.
m.setValue(3, "000000", IsoType.ALPHA, 6);
m.setValue(11, "000001", IsoType.ALPHA, 6);
m.setValue(41, "3239313130303031", IsoType.ALPHA, 16);
m.setValue(60, "001054455354204D45535347", IsoType.ALPHA, 24);
m.setValue(70, "0301", IsoType.ALPHA, 4);
System.out.println(m.debugString());
Как я должен получить сообщение ISO перед отправкой принимающему хосту?
1 ответ
Решение
Есть три способа:
- Вызов
writeData
чтобы получить сообщение, закодированное в виде байтового массива. Вы будете обязаны записать это в сокет с заголовками длины, терминатором и т. Д. - Вызов
writeToBuffer
если вы используете java.nio, чтобы получить ByteBuffer. Вы можете передать размер заголовка длины (обычно 2 или 4 байта) или 0, чтобы опустить заголовок длины. Результирующий ByteBuffer включает в себя терминатор сообщения, если он установлен. - Вызов
write
, чтобы написать сообщение непосредственно в OutputStream. Вы можете указать размер заголовка длины, и он также запишет терминатор (если установлен), а затем очистит поток.