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