[英]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.