有没有办法解析位图被屏蔽或没有任何位图的 ISO8583 消息?
Is there any way to parse ISO8583 message in which the bitmap is masked or doesn't have any Bitmap?
我正在开发一个双向适配器,它对 ISO8583 消息应用一些转换并将其发送到另一端。但是适配器的一侧发送没有位图的消息。
2019-01-26 13:38:27,774 ChannelServerEndpoint.run() Can't parse request 1804179121190126120635801
在 MIT(1804) 之后的真实场景中,我应该使用 8 或 16 位十六进制数字作为位图。像这个:
Sending request: 163726, ISO Message: <br/>**18040030010000000000163726190123065952831**<br/>
TYPE: 1804<br/>
F 11(NUMERIC): 163726 -> '163726'<br/>
F 12(DATE12): 190123065952 -> '190123065952'<br/>
F 24(NUMERIC): 831 -> '831'<br/>
我用的是J8583
try {
log.debug(String.format("Parsing incoming: '%s'", new String(
data)));
// incoming message
IsoMessage incomingMessage = messageFactory.parseMessage(data, NetworkInterfaceConfiguration.MESSAGE_HEADER_LENGTH);
// System.out.printf("Message TYPE: %s", messageType);
MessageTransformer transformer = new MessageTransformer(incomingMessage);
transformer.run();
if (transformer.getIsoMessage() != null) {
System.out.println("We are before assigning transformations");
transformedMessage = transformer.getIsoMessage();
} else {
log.error("Transformation is failed.");
}
IsoMessageUtil.printIsoMessage(transformedMessage);
log.info("Firing Message to Dist....");
ChannelClientEndpint.fireMessage(transformedMessage);
} catch (ParseException ex) {
log.error(String.format("Can't parse request %s", new String(data)));
throw new UnknownError(ex.getMessage());
} catch (IOException ex) {
log.error("Writing response", ex);
throw new UncheckedIOException(ex.getMessage(), ex);
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
throw new UnknownError(ex.getMessage());
}
你能帮我解决这个问题吗?
没有位图和每个字段类型的规范,就无法解析 ISO8583 消息。如果您知道应该接收哪些字段以及它们是什么类型,则需要以这种方式配置 MessageFactory
,并手动将位图插入数据中,以便将其解析为常规 ISO8583 消息。
我正在开发一个双向适配器,它对 ISO8583 消息应用一些转换并将其发送到另一端。但是适配器的一侧发送没有位图的消息。
2019-01-26 13:38:27,774 ChannelServerEndpoint.run() Can't parse request 1804179121190126120635801
在 MIT(1804) 之后的真实场景中,我应该使用 8 或 16 位十六进制数字作为位图。像这个:
Sending request: 163726, ISO Message: <br/>**18040030010000000000163726190123065952831**<br/>
TYPE: 1804<br/>
F 11(NUMERIC): 163726 -> '163726'<br/>
F 12(DATE12): 190123065952 -> '190123065952'<br/>
F 24(NUMERIC): 831 -> '831'<br/>
我用的是J8583
try {
log.debug(String.format("Parsing incoming: '%s'", new String(
data)));
// incoming message
IsoMessage incomingMessage = messageFactory.parseMessage(data, NetworkInterfaceConfiguration.MESSAGE_HEADER_LENGTH);
// System.out.printf("Message TYPE: %s", messageType);
MessageTransformer transformer = new MessageTransformer(incomingMessage);
transformer.run();
if (transformer.getIsoMessage() != null) {
System.out.println("We are before assigning transformations");
transformedMessage = transformer.getIsoMessage();
} else {
log.error("Transformation is failed.");
}
IsoMessageUtil.printIsoMessage(transformedMessage);
log.info("Firing Message to Dist....");
ChannelClientEndpint.fireMessage(transformedMessage);
} catch (ParseException ex) {
log.error(String.format("Can't parse request %s", new String(data)));
throw new UnknownError(ex.getMessage());
} catch (IOException ex) {
log.error("Writing response", ex);
throw new UncheckedIOException(ex.getMessage(), ex);
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
throw new UnknownError(ex.getMessage());
}
你能帮我解决这个问题吗?
没有位图和每个字段类型的规范,就无法解析 ISO8583 消息。如果您知道应该接收哪些字段以及它们是什么类型,则需要以这种方式配置 MessageFactory
,并手动将位图插入数据中,以便将其解析为常规 ISO8583 消息。