帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:JAVA  Iso8583  ISO  Netty  Server  Java客户端  
Java Client & Server for ISO8583 & Netty

  • 源代码名称:jreactive-8583
  • 源代码网址:http://www.github.com/kpavlov/jreactive-8583
  • jreactive-8583源代码文档
  • jreactive-8583源代码下载
  • Git URL:
    git://www.github.com/kpavlov/jreactive-8583.git
  • Git Clone代码到本地:
    git clone http://www.github.com/kpavlov/jreactive-8583
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/kpavlov/jreactive-8583
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • JReactive-8583

    免费ISO8583连接器

    TravisLibraries.io for GitHubCodacy Badge

    动机

    • jPOS 库对于商业使用不是免费的。
    • j8583 是免费的,但不提供网络客户端

    解决方案:在优秀的联网服务器和服务器上建立收费的"j-reactive-8583"ISO8583客户端和服务器,借助j8583 提供编码/解码功能。 它是在Apache许可证 2.0下发布的。

    支持功能

    用户输入 ISO8583/ip传输

    对于数据传输,tcp/ip使用会话。 每个会话都是双向数据流。 协议使用单个 tcp/ip会话在两个方向的主机之间传输数据。

    连续的tcp/ip数据流被分割成帧。 每个 ISO8583的消息都在单独的帧中发送。

    帧由一个字节长度头和一个消息体组成。 通常,N==2.标题包含下列消息的长度。 首先传输高字节值,并传输低字节值的第二个字节。

    N 字节M 字节
    消息长度= MISO-8583消息
    正在启动

    首先,你需要下载最新版本的发布文件,或者克隆这个库并手工构建工件,手工构建。

    然后将依赖项添加到项目中:

    
    <dependencies>
    
    
     <dependency>
    
    
     <groupId>com.github.kpavlov.jreactive8583</groupId>
    
    
     <artifactId>netty-iso8583</artifactId>
    
    
     <version>0.2.2</version>
    
    
     </dependency>
    
    
    <dependencies>
    
    
    
    

    现在你可以在代码中使用ISO8583客户端或者服务器。

    创建和使用 ISO-8583 客户端

    最小客户端工作流包括:

    MessageFactory<IsoMessage> messageFactory =ConfigParser.createDefault();// [1]Iso8583Client<IsoMessage> client =newIso8583Client<>(messageFactory);// [2]client.addMessageListener(newIsoMessageListener<IsoMessage>() { // [3]...});
    client.getConfiguration().replyOnError(true);// [4]client.init();// [5]client.connect(host, port);// [6]if (client.isConnected()) { // [7]IsoMessage message = messageFactory.newMessage(...);
     ... client.sendAsync(message);// [8]// or client.send(message);// [9]// or client.send(message, 1, TimeUnit.SECONDS);// [10]}...client.shutdown();// [11]
    • 首先你需要创建一个 MessageFactory
    • 然后,创建一个 Iso8583Client 插件,提供,还可以选择使用 SocketAddress
    • 添加一个或者多个自定义 IsoMessageListener 来处理 IsoMessage
    • 配置客户端。如果你对默认配置很好,则可以省略这里步骤。
    • 初始化客户端。现在它已经准备好连接。
    • 建立连接。默认情况下,如果连接将丢失,则自动重新连接。 你可以禁用这里行为或者更改 reconnectInterval。
    • 验证连接是否已经建立
    • 异步发送 IsoMessage
    • 同步发送 IsoMessage
    • 同步发送 IsoMessage 和超时支持
    • 完成后断开连接。

    创建和使用 ISO-8583 服务器

    典型的服务器工作流包括:

    MessageFactory<IsoMessage> messageFactory =ConfigParser.createDefault();// [1]Iso8583Server<IsoMessage> server =newIso8583Server<>(port, messageFactory);// [2]server.addMessageListener(newIsoMessageListener<IsoMessage>() { // [3]...});
    server.getConfiguration().replyOnError(true);// [4]server.init();// [5]server.start();// [6]if (server.isStarted()) { // [7]...}...server.shutdown();// [8]
    • 首先你需要创建一个 MessageFactory
    • 然后创建一个 Iso8583Server,提供 MessageFactory 和端口绑定到
    • 添加一个或者多个自定义 IsoMessageListener 来处理 IsoMessage
    • 配置服务器。如果你对默认配置很好,则可以省略这里步骤。
    • 初始化服务器。现在它已经准备好启动。
    • 启动服务器。现在它准备接受客户端连接。
    • 验证服务器是否已经启动
    • 完成后关闭服务器。

    日志记录

    默认 IsoMessageLoggingHandler 可能产生如下输出:

    
    312 [nioEventLoopGroup-5-1] DEBUG IsoMessageLoggingHandler - [id: 0xa72cc005,/127.0.0.1:50853 =>/127.0.0.1:9876] MTI: 0x0200
    
    
     2: [Primary account number (PAN):NUMERIC(19)] = '000400*********0002'
    
    
     3: [Processing code:NUMERIC(6)] = '650000'
    
    
     7: [Transmission date & time:DATE10(10)] = '0720233443'
    
    
     11: [System trace audit number:NUMERIC(6)] = '483248'
    
    
     32: [Acquiring institution identification code:LLVAR(3)] = '456'
    
    
     35: [Track 2 data:LLVAR(17)] = '***'
    
    
     43: [Card acceptor name/location (1-23 address 24-36 city 37-38 state 39-40 country):ALPHA(40)] = 'SOLABTEST TEST-3 DF MX '
    
    
     49: [Currency code, transaction:ALPHA(3)] = '484'
    
    
     60: [Reserved national:LLLVAR(3)] = 'foo'
    
    
     61: [Reserved private:LLLVAR(5)] = '1234P'
    
    
     100: [Receiving institution identification code:LLVAR(3)] = '999'
    
    
     102: [Account identification 1:LLVAR(4)] = 'ABCD'
    
    
    
    

    使用客户端或者服务器configurationYou可能:

    • 启用和禁用敏感信息的打印,如 PAN
    • 自定义应在日志中屏蔽哪些字段
    • 启用和禁用打印字段描述

    你可以提供自己的日志处理程序,并使用 ConnectorConfiguration.addLoggingHandler(boolean) 方法和自定义 ChannelPipeline。

    对于常见问题解答,请查看 FAQ 页面。

    ISO 8583链接



    文章标签:JAVA  Server  ISO  Netty  Java客户端  Iso8583  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语