首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开始使用jpos

开始使用jpos
EN

Stack Overflow用户
提问于 2014-12-07 05:33:39
回答 1查看 3.3K关注 0票数 3

我正在创建一个新的支付应用程序。我所拥有的是一个客户端应用程序,用户选择价格,输入其身份验证信息,然后客户端创建和iso 8583消息,并将这些数据发送到银行服务器。

根据本人的研究,可以使用jPOS对银行服务器进行仿真。实际上,我需要一个服务器来获取iso消息和对它们的响应,但是我不知道如何使用jPOS来实现这个建议。

我在网上搜索了这个,但是找不到任何资源来回答我们的问题。我的主要问题是,我是否需要使用jPOS创建一个应用程序来实现我的需求,还是只在服务器上安装jPOS就足以测试我的客户端应用程序了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-10 04:06:00

嗯,阅读jpos库文档它的草稿版本可以在网上找到,你可以找到它这里

针对您关于JPOS的问题,更好地实现您自己的服务器。JPos提供了类ISOServer,例如,下面的bean在applicationContext.xml文件中启动一个applicationContext.xml服务器

代码语言:javascript
复制
<bean id="paymentServer" class="org.jpos.iso.ISOServer">
    <constructor-arg>
        <value>13000</value>
    </constructor-arg>
    <constructor-arg ref="paymentChannel" />
    <constructor-arg ref="paymentServerThreadPool" />
</bean>

<bean id="paymentChannel" class="org.jpos.iso.channel.ASCIIChannel">
    <constructor-arg ref="paymentPackager" />
</bean>

<bean id="paymentPackager" class="com.sample.payment.packager.PaymentPackager"/>

<bean id="paymentServerThreadPool" class="org.jpos.util.ThreadPool">
    <constructor-arg>
        <value>1</value>
    </constructor-arg>
    <constructor-arg>
        <value>100</value>
    </constructor-arg>
    <constructor-arg>
        <value>PaymentServer</value>
    </constructor-arg>
</bean>

<bean id="paymentProcessor" class="com.sample.processors.PaymentProcessor"  init-method="init"/>

实现包程序的以下类

代码语言:javascript
复制
public class PaymentPackager extends ISOBasePackager {

    protected ISOFieldPackager fld[] = {
            /* 0000 */ new IFB_NUMERIC  (  4, "Message Type Indicator", false), 
            /* 0001 */ new IFB_BITMAP   ( 16, "Bitmap"),    
            /* 0002 */ new IFB_LLLCHAR  (999, "Primary Account number"),    
            /* 0003 */ new IFB_NUMERIC  (  6, "Processing Code", true),
            /* 0004 */ new IFB_NUMERIC  ( 12, "Amount, Transaction", true),
            //.....
            /* 0063 */ new IFB_LLLCHAR  (999, "Reserved for national use"),
            /* 0064 */ new IFB_BINARY   ( 20, "Message authentication code field"),
            //.....     
            /* 0125 */ new IF_UNUSED    (),
            /* 0126 */ new IF_UNUSED    (),
            /* 0127 */ new IF_UNUSED    (),
            /* 0128 */ new IFB_BINARY   ( 20, "Message authentication code field"),
    };

    public PaymentPackager() {
        super();
        setFieldPackager(fld);      
    }

}

在应用程序入口点类中,您可以获得bean并使用如下所示来附加通道侦听器

代码语言:javascript
复制
paymentServer.addISORequestListener(paymentProcessor);

下面是示例侦听器

代码语言:javascript
复制
public class PaymentProcessor implements ISORequestListener {

    private static Logger log = LoggerFactory.getLogger(PaymentProcessor.class);

    public void init() {

        //do init
    }

    public boolean process (ISOSource source, ISOMsg m){

        log.debug(">PaymentProcessor.process");

        ISOMsg request = (ISOMsg) m.clone();
        ISOMsg response = new ISOMsg();

        //...
        //build your response
        //...

        source.send(response);
        return true;
    }
}

注意:我还没有实现它,但是jpos提供了使用Q2实现服务器和客户机的新方法--您可以看到用于实现服务器的QServer类的文档,我将尽可能快地共享示例。

快乐编码:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27339942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档