【问题标题】:Dummy backend for ISO 8583 messageISO 8583 消息的虚拟后端
【发布时间】:2014-08-13 12:20:13
【问题描述】:

我想为 ISO 8583 消息创建虚拟后端。此问题的必要条件是“针对此后端运行 jPos/其他 ATM 测试套件”。

【问题讨论】:

标签: iso iso8583


【解决方案1】:

你可以试试简单的jReactive-iso8583 server

看看client-server integration test

使用示例:

弹簧配置:

@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-05-04
    • 2015-01-30
    • 2019-05-16
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多