Я начинаю использовать jpos для своего приложения. Мне нужно, чтобы мое приложение отправило сообщение iso8583 (версия 1987) на сервер и получило ответ.
Это мой код:
InputStream is = PackagerFactory.class.getResourceAsStream("iso87ascii.xml");
ISOPackager packager = new GenericPackager(is);
ISOMsg m = new ISOMsg();
m.setMTI("0820");
m.set(7, "0319174039");
m.set(11, "639530");
m.set(15, "0319");
m.set(24, "001");
m.set(64, "6038f060aba137a5b0efb4cc538416c8");
m.setPackager(packager);
byte b[] = m.pack();
String s = new String(b);
Значение «s»: 082002220100000000010000031917403963953003190016038f060aba137a5b0efb4cc538416c8
Итак: 0820 — это MTI
02220100000000010000 — это Bitmap.
Я чего-то не понимаю:
1. Про битмап:
Почему длина битмапа 20, а в конфиге файла "iso87ascii.xml" указана его длина 16?< бр/>
Вот содержимое iso87ascii.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd">
<!-- ISO 8583:1987 (ASCII) field descriptions for GenericPackager -->
<isopackager>
<isofield
id="0"
length="4"
name="MESSAGE TYPE INDICATOR"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="1"
length="16"
name="BIT MAP"
class="org.jpos.iso.IFA_BITMAP"/>
<isofield
id="2"
length="19"
name="PAN - PRIMARY ACCOUNT NUMBER"
class="org.jpos.iso.IFA_LLNUM"/>
...
<isofield
id="7"
length="14"
name="TRANSMISSION DATE AND TIME"
class="org.jpos.iso.IFA_NUMERIC"/>
...
<isofield
id="11"
length="6"
name="SYSTEM TRACE AUDIT NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
....
<isofield
id="15"
length="4"
name="DATE, SETTLEMENT"
class="org.jpos.iso.IFA_NUMERIC"/>
...
<isofield
id="24"
length="3"
name="NETWORK INTERNATIONAL IDENTIFIEER"
class="org.jpos.iso.IFA_NUMERIC"/>
.....
<isofield
id="64"
length="32"
name="MESSAGE AUTHENTICATION CODE FIELD"
class="org.jpos.iso.IF_CHAR"/>
</isopackager>
2. О заголовке сообщения:
Я хочу отправить сообщение в формате:
Package header + Package body
Заголовок пакета: заголовок из четырех символов ASCII, указывающий длину тела пакета.
Тело пакета: сообщение 8583
Итак, как я могу сделать это с помощью JPOS?
Пожалуйста, помогите,
Заранее спасибо,
String
? - person fge   schedule 19.03.2014