2

アプリケーションに jpos を使い始めています。メッセージ iso8583 (ver 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 はビットマップです。

よくわからないことがあります:
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

パッケージ ヘッダー: パッケージ本体の長さを示す 4 つの ASCII 文字ヘッダー。
パッケージ本体: 8583 メッセージ

では、JPOS でそれを行うにはどうすればよいでしょうか。

助けてください、

少し早いですがお礼を、

4

1 に答える 1