начать работать с jpos

Я создаю новое платежное приложение. У меня есть клиентское приложение, в котором пользователь выбирает цену, вводит информацию для аутентификации, а затем клиент создает сообщение iso 8583 и отправляет эти данные на сервер банка.

Согласно моим исследованиям, я могу использовать jPOS для эмуляции банковского сервера. На самом деле мне нужен сервер для получения iso-сообщений и ответа на них, но я не знаю, как я могу использовать jPOS для этого предложения.

Я искал это в Интернете, но не смог найти ни одного ресурса, который дал бы нам четкий ответ. Мой главный вопрос заключается в том, нужно ли мне создавать приложение с использованием jPOS для реализации моих требований или достаточно установить jPOS на сервер для тестирования моего клиентского приложения?


person Husein Behboudi Rad    schedule 07.12.2014    source источник


Ответы (1)


Прочтите документацию по библиотеке jpos, ее черновая версия доступна в Интернете, вы можете найти ее здесь

Конкретно на ваш вопрос про JPOS Server лучше реализовать свой сервер. JPos предоставляет класс ISOServer, например. следующие bean-компоненты инициируют сервер ISO в файле applicationContext.xml

<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"/>

Следующий класс для реализации упаковщика

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-компонент и использовать его, как показано ниже, для подключения прослушивателя канала.

paymentServer.addISORequestListener(paymentProcessor);

Ниже приведен образец прослушивателя

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 для реализации сервера, я попытаюсь поделитесь образцом, как только смогу.

Удачного кодирования :)

person Mubashar    schedule 10.12.2014
comment
Большое спасибо @Mubashar, недавно я нашел кое-что о jpos-ee. Я не уверен, что именно это, но в приведенном ниже руководстве: jpos.org/doc/jPOS- EE.pdf они представили кое-что о симуляторах сервера и клиента (стр. 31-35). Что вы думаете об этом? Не лучше ли использовать его вместо того, чтобы самому разрабатывать новый эмулятор сервера? - person Husein Behboudi Rad; 10.12.2014
comment
Да, я бы не использовал его, но я планирую создать образец симулятора в соответствии со своими потребностями в ближайший понедельник или на выходных. Кстати, он использует QServer, но поскольку я не был уверен в этом, я поделился с вами кодом сервера. Я дам вам знать, если у меня это получится. - person Mubashar; 10.12.2014