我想为 ISO 8583 消息创建虚拟后端。此问题的必要条件是“针对此后端运行 jPos/其他 ATM 测试套件”。
问问题
1960 次
1 回答
2
您可以尝试简单的 jReactive-iso8583 server。
看看客户端-服务器集成测试。
使用示例:
弹簧配置:
@Configuration
public class Iso8583ServerConfig {
@Value("${iso8583.connection.port}")
int port;
@Bean
public org.jreactive.iso8583.server.Iso8583Server iso8583Server() throws IOException {
return new org.jreactive.iso8583.server.Iso8583Server(port, serverMessageFactory());
}
@Bean
MessageFactory serverMessageFactory() throws IOException {
MessageFactory messageFactory = ConfigParser.createDefault();
messageFactory.setCharacterEncoding(StandardCharsets.US_ASCII.name());
messageFactory.setUseBinaryMessages(false);
messageFactory.setAssignDate(true);
return messageFactory;
}
}
在某处添加自定义消息侦听器:
server.addMessageListener(new IsoMessageListener() {
@Override
public boolean applies(IsoMessage isoMessage) {
return isoMessage.getType() == 0x200;
}
@Override
public boolean onMessage(ChannelHandlerContext ctx, IsoMessage isoMessage) {
capturedRequest = isoMessage;
final IsoMessage response = server.getIsoMessageFactory().createResponse(isoMessage);
response.setField(39, IsoType.ALPHA.value("00", 2));
response.setField(60, IsoType.LLLVAR.value("XXX", 3));
ctx.writeAndFlush(response);
return false;
}
});
然后运行服务器:
server.init();
server.start();
关闭服务器:
server.shutdown();
于 2015-07-19T19:02:39.160 回答