I cannot unpack Postilion message from source node

247 views
Skip to first unread message

ricmoore

unread,
Oct 12, 2006, 4:20:19 PM10/12/06
to jPOS Users
I have pasted a binary data of what I need to unpack from an incoming
stream. Can someone help with the right Component to use. I actually
have problem with field 127. Please help. I will appreciate a sample
code

=============================================================
0000(0000) 30 32 30 30 F2 3E 04 95 08 E0 81 00 00 00 00 00
0200.>..........
0016(0010) 04 00 00 22 31 36 30 35 37 30 30 31 30 35 31 32
..."160570010512
0032(0020) 32 39 38 39 38 34 33 31 30 30 30 30 30 30 30 30
2989843100000000
0048(0030) 30 30 30 30 30 30 30 30 31 30 31 32 31 33 34 37
0000000010121347
0064(0040) 33 35 30 30 30 30 31 31 31 33 34 37 33 35 31 30
3500001113473510
0080(0050) 31 32 30 37 31 32 31 30 31 31 30 30 31 30 30 43
120712101100100C
0096(0060) 30 30 30 30 30 30 30 30 43 30 30 30 30 30 30 30
00000000C0000000
0112(0070) 30 30 36 36 32 37 36 32 39 30 30 30 30 30 30 33
0066276290000003
0128(0080) 38 37 30 32 30 31 30 35 37 30 30 31 31 30 30 31
8702010570011001
0144(0090) 20 20 20 20 20 20 20 20 20 20 20 20 5A 49 42 20
ZIB
0160(00A0) 48 65 61 64 20 4F 66 66 69 63 65 20 41 54 4D 20 Head
Office ATM
0176(00B0) 20 20 20 56 2F 49 20 4C 61 67 6F 73 20 20 20 20 V/I
Lagos
0192(00C0) 30 31 4E 47 35 36 36 30 30 34 31 35 31 30 31 30
01NG566004151010
0208(00D0) 34 30 39 30 31 32 36 36 35 39 30 31 35 32 31 31
4090126659015211
0224(00E0) 32 30 31 32 30 33 31 34 34 30 30 32 30 30 30 31
2012031440020001
0240(00F0) 31 35 60 1C 10 00 00 00 00 00 31 30 30 30 30 30
15`.......100000
0256(0100) 33 38 37 30 32 30 5A 65 6E 69 74 68 41 54 4D 73
387020ZenithATMs
0272(0110) 63 72 5A 49 42 65 54 72 61 6E 7A 53 6E 6B 30 30
crZIBeTranzSnk00
0288(0120) 30 30 30 32 30 30 30 30 31 31 5A 65 6E 69 74 68
0002000011Zenith
0304(0130) 54 47 20 20 20 20 31 32 5A 49 42 65 54 72 61 6E TG
12ZIBeTran
0320(0140) 7A 53 6E 6B 30 31 32 33 34 31 30 30 30 30 31 20
zSnk01234100001
0336(0150) 20 20 35 36 36 5A 45 4E 49 54 48 20 42 32 30 30
566ZENITH B200
0352(0160) 36 30 39 32 31 60921
=============================================================

chhil

unread,
Oct 12, 2006, 9:49:03 PM10/12/06
to jpos-...@googlegroups.com
Hi,

I used the following code and got to parse the stream (the hex dump from your message) just fine...

package test;

import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOUtil ;
import org.jpos.iso.packager.PostPackager;
import org.jpos.util.Logger;
import org.jpos.util.SimpleLogListener;

import postilion.core.util.XPostilion;

public class test {
   
    public static String msg =    
    "30323030F23E049508E0810000000000"+
    "04000022313630353730303130353132"+
    "32393839383433313030303030303030"+
    "30303030303030303130313231333437"+
    "33353030303031313133343733353130"+
    "31323037313231303131303031303043"+
    "30303030303030304330303030303030"+
    "30303636323736323930303030303033"+
    "38373032303130353730303131303031"+
    "2020202020202020202020205A494220"+
    "48656164204F66666963652041544D20"+
    "202020562F49204C61676F7320202020"+
    "30314E47353636303034313531303130"+
    "34303930313236363539303135323131"+
    "32303132303331343430303230303031"+
    "3135601C100000000000313030303030"+
    "3338373032305A656E69746841544D73"+
    "63725A4942655472616E7A536E6B3030"+
    "303030323030303031315A656E697468"+
    "54472020202031325A4942655472616E"+
    "7A536E6B303132333431303030303120"+
    "20203536365A454E4954482042323030"+
    "3630393231";

    public static void main(String[] args) throws ISOException, XPostilion {

       
   
        PostPackager pc = new PostPackager();
        Logger logger = new Logger();
        logger.addListener(new SimpleLogListener(System.out));
        pc.setLogger(logger, "packager-debug");
        ISOMsg m1 = new ISOMsg();
        m1.setPackager(pc);
        m1.unpack(ISOUtil.hex2byte(msg));
        m1.dump(System.out, "");

    }

}


<log realm="packager-debug.PostPrivatePackager " at="Thu Oct 12 21:46:57 EDT 2006.765">
  <unpack>
    601C1000000000003130303030303338373032305A656E69746841544D7363725A4942655472616E7A536E6B3030303030323030303031315A656E69746854472020202031325A4942655472616E7A536E6B30313233343130303030312020203536365A454E49544820423230303630393231
    <bitmap>{2, 3, 12, 13, 14, 20}</bitmap>
    <unpack fld="2" packager="org.jpos.iso.IFA_LLCHAR">
      <value>0000387020</value>
    </unpack>
    <unpack fld="3" packager=" org.jpos.iso.IF_CHAR">
      <value>ZenithATMscrZIBeTranzSnk000002000011ZenithTG    </value>
    </unpack>
    <unpack fld="12" packager="org.jpos.iso.IFA_LLCHAR">
      <value>ZIBeTranzSnk</value>
    </unpack>
    <unpack fld="13" packager="org.jpos.iso.IF_CHAR">
      <value>01234100001   566</value>
    </unpack>
    <unpack fld="14" packager="org.jpos.iso.IF_CHAR">
      <value>ZENITH B</value>
    </unpack>
    <unpack fld="20" packager="org.jpos.iso.IFA_NUMERIC ">
      <value>20060921</value>
    </unpack>
  </unpack>
</log>
<log realm="packager-debug" at="Thu Oct 12 21:46:57 EDT 2006.890">
  <unpack>
    30323030F23E049508E081000000000004000022313630353730303130353132323938393834333130303030303030303030303030303030313031323133343733353030303031313133343733353130313230373132313031313030313030433030303030303030433030303030303030303636323736323930303030303033383730323031303537303031313030312020202020202020202020205A49422048656164204F66666963652041544D20202020562F49204C61676F732020202030314E4735363630303431353130313034303930313236363539303135323131323031323033313434303032303030313135601C1000000000003130303030303338373032305A656E69746841544D7363725A4942655472616E7A536E6B3030303030323030303031315A656E69746854472020202031325A4942655472616E7A536E6B30313233343130303030312020203536365A454E49544820423230303630393231
    <bitmap>{1, 2, 3, 4, 7, 11, 12, 13, 14, 15, 22, 25, 28, 30, 32, 37, 41, 42, 43, 49, 56, 102, 123, 127}</bitmap>
    <unpack fld="2" packager="org.jpos.iso.IFA_LLNUM">
      <value>0570010512298984</value>
    </unpack>
    <unpack fld="3" packager="org.jpos.iso.IFA_NUMERIC">
      <value>310000</value>
    </unpack>
    <unpack fld="4" packager=" org.jpos.iso.IFA_NUMERIC">
      <value>000000000000</value>
    </unpack>
    <unpack fld="7" packager="org.jpos.iso.IFA_NUMERIC">
      <value>1012134735</value>
    </unpack>
    <unpack fld="11" packager="org.jpos.iso.IFA_NUMERIC">
      <value>000011</value>
    </unpack>
    <unpack fld="12" packager=" org.jpos.iso.IFA_NUMERIC">
      <value>134735</value>
    </unpack>
    <unpack fld="13" packager="org.jpos.iso.IFA_NUMERIC">
      <value>1012</value>
    </unpack>
    <unpack fld="14" packager="org.jpos.iso.IFA_NUMERIC">
      <value>0712</value>
    </unpack>
    <unpack fld="15" packager=" org.jpos.iso.IFA_NUMERIC">
      <value>1011</value>
    </unpack>
    <unpack fld="22" packager="org.jpos.iso.IFA_NUMERIC">
      <value>001</value>
    </unpack>
    <unpack fld="25" packager="org.jpos.iso.IFA_NUMERIC">
      <value>00</value>
    </unpack>
    <unpack fld="28" packager=" org.jpos.iso.IFA_AMOUNT">
      <value>C00000000</value>
    </unpack>
    <unpack fld="30" packager="org.jpos.iso.IFA_AMOUNT">
      <value>C00000000</value>
    </unpack>
    <unpack fld="32" packager="org.jpos.iso.IFA_LLNUM">
      <value>627629</value>
    </unpack>
    <unpack fld="37" packager=" org.jpos.iso.IF_CHAR">
      <value>000000387020</value>
    </unpack>
    <unpack fld="41" packager="org.jpos.iso.IF_CHAR">
      <value>10570011</value>
    </unpack>
    <unpack fld="42" packager="org.jpos.iso.IF_CHAR">
      <value>001            </value>
    </unpack>
    <unpack fld="43" packager=" org.jpos.iso.IF_CHAR">
      <value>ZIB Head Office ATM    V/I Lagos    01NG</value>
    </unpack>
    <unpack fld="49" packager="org.jpos.iso.IF_CHAR">
      <value>566</value>
    </unpack>
    <unpack fld="56" packager="org.jpos.iso.IFA_LLLCHAR">
      <value>1510</value>
    </unpack>
    <unpack fld="102" packager=" org.jpos.iso.IFA_LLCHAR">
      <value>4090126659</value>
    </unpack>
    <unpack fld="123" packager="org.jpos.iso.IFA_LLLCHAR">
      <value>211201203144002</value>
    </unpack>
    <unpack fld="127" packager="org.jpos.iso.ISOMsgFieldPackager">
    <isomsg id="127">
      <field id="0" value=""/>
      <field id="2" value="0000387020"/>
      <field id="3" value="ZenithATMscrZIBeTranzSnk000002000011ZenithTG    "/>
      <field id="12" value="ZIBeTranzSnk"/>
      <field id="13" value="01234100001   566"/>
      <field id="14" value="ZENITH B"/>
      <field id="20" value="20060921"/>
    </isomsg>
    </unpack>
  </unpack>
</log>
<isomsg>
  <field id="0" value="0200"/>
  <field id="2" value="0570010512298984"/>
  <field id="3" value="310000"/>
  <field id="4" value="000000000000"/>
  <field id="7" value="1012134735"/>
  <field id="11" value="000011"/>
  <field id="12" value="134735"/>
  <field id="13" value="1012"/>
  <field id="14" value="0712"/>
  <field id="15" value="1011"/>
  <field id="22" value="001"/>
  <field id="25" value="00"/>
  <field id="28" value="C00000000"/>
  <field id="30" value="C00000000"/>
  <field id="32" value="627629"/>
  <field id="37" value="000000387020"/>
  <field id="41" value="10570011"/>
  <field id="42" value="001            "/>
  <field id="43" value="ZIB Head Office ATM    V/I Lagos    01NG"/>
  <field id="49" value="566"/>
  <field id="56" value="1510"/>
  <field id="102" value="4090126659"/>
  <field id="123" value="211201203144002"/>
  <isomsg id="127">
    <field id="0" value=""/>
    <field id="2" value="0000387020"/>
    <field id="3" value="ZenithATMscrZIBeTranzSnk000002000011ZenithTG    "/>
    <field id="12" value="ZIBeTranzSnk"/>
    <field id="13" value="01234100001   566"/>
    <field id="14" value="ZENITH B"/>
    <field id="20" value="20060921"/>
  </isomsg>
</isomsg>


-chhil

ricmoore

unread,
Oct 13, 2006, 4:24:50 AM10/13/06
to jPOS Users
Thank chhil
You are always helpful. But I do not have
"postilion.core.util.XPostilion".

chhil

unread,
Oct 13, 2006, 5:16:37 AM10/13/06
to jpos-...@googlegroups.com

Sorry about the XPostilion ...that slipped in by mistake...you can safely remove that..

-chhil

ricmoore

unread,
Oct 13, 2006, 5:18:41 AM10/13/06
to jPOS Users
See the error when I ran that code here


java.lang.ArrayIndexOutOfBoundsException: 0
at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
<log realm="packager-debug.PostPrivatePackager" at="Fri Oct 13 09:23:01
WAT 2006.15">
<unpack>

<exception name="0">
java.lang.ArrayIndexOutOfBoundsException: 0
at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
</exception>
</unpack>
</log>
error unpacking field 127
org.jpos.iso.ISOException: java.lang.ArrayIndexOutOfBoundsException: 0
(java.lang.ArrayIndexOutOfBoundsException: 0)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:293)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
Nested:java.lang.ArrayIndexOutOfBoundsException: 0
at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
<log realm="packager-debug" at="Fri Oct 13 09:23:01 WAT 2006.171">
<unpack>

<iso-exception>
java.lang.ArrayIndexOutOfBoundsException: 0
<nested-exception>
java.lang.ArrayIndexOutOfBoundsException: 0
at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
</nested-exception>
org.jpos.iso.ISOException:
java.lang.ArrayIndexOutOfBoundsException: 0
(java.lang.ArrayIndexOutOfBoundsException: 0)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:293)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
Nested:java.lang.ArrayIndexOutOfBoundsException: 0
at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
</iso-exception>
<iso-exception>
java.lang.ArrayIndexOutOfBoundsException: 0
<nested-exception>
java.lang.ArrayIndexOutOfBoundsException: 0
at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
</nested-exception>
org.jpos.iso.ISOException:
java.lang.ArrayIndexOutOfBoundsException: 0
(java.lang.ArrayIndexOutOfBoundsException: 0)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:293)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)Exception in thread "main"
org.jpos.iso.ISOException: java.lang.ArrayIndexOutOfBoundsException: 0
(java.lang.ArrayIndexOutOfBoundsException: 0)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:293)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
Nested:java.lang.ArrayIndexOutOfBoundsException: 0
at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
Nested:java.lang.ArrayIndexOutOfBoundsException: 0
at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)
</iso-exception>
</unpack>
</log>

at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
at test.test.main(test.java:52)

chhil

unread,
Oct 13, 2006, 5:46:30 AM10/13/06
to jpos-...@googlegroups.com
Hi,
Maybe the packager definition has changed from the version you are using. I am using the 1.6 stuff..and the fileds are deined asthe folowing in the PostPackager..
See if these definitions match what you have.


public class PostPackager extends ISOBasePackager {
    protected PostPrivatePackager p127 = new PostPrivatePackager();
    protected ISOFieldPackager fld[] = {
            new IFA_NUMERIC (  4, "MESSAGE TYPE INDICATOR"),
            new IFB_BITMAP  ( 16, "BIT MAP"),
            new IFA_LLNUM   ( 19, "PAN - PRIMARY ACCOUNT NUMBER"),
            new IFA_NUMERIC (  6, "PROCESSING CODE"),
            new IFA_NUMERIC ( 12, "AMOUNT, TRANSACTION"),
            new IFA_NUMERIC ( 12, "AMOUNT, SETTLEMENT"),
            new IFA_NUMERIC ( 12, "AMOUNT, CARDHOLDER BILLING"),
            new IFA_NUMERIC ( 10, "TRANSMISSION DATE AND TIME"),
            new IFA_NUMERIC (  8, "AMOUNT, CARDHOLDER BILLING FEE"),
            new IFA_NUMERIC (  8, "CONVERSION RATE, SETTLEMENT"),
            new IFA_NUMERIC (  8, "CONVERSION RATE, CARDHOLDER BILLING"),
            new IFA_NUMERIC (  6, "SYSTEM TRACE AUDIT NUMBER"),
            new IFA_NUMERIC (  6, "TIME, LOCAL TRANSACTION"),
            new IFA_NUMERIC (  4, "DATE, LOCAL TRANSACTION"),
            new IFA_NUMERIC (  4, "DATE, EXPIRATION"),
            new IFA_NUMERIC (  4, "DATE, SETTLEMENT"),
            new IFA_NUMERIC (  4, "DATE, CONVERSION"),
            new IFA_NUMERIC (  4, "DATE, CAPTURE"),
            new IFA_NUMERIC (  4, "MERCHANTS TYPE"),
            new IFA_NUMERIC (  3, "ACQUIRING INSTITUTION COUNTRY CODE"),
            new IFA_NUMERIC (  3, "PAN EXTENDED COUNTRY CODE"),
            new IFA_NUMERIC (  3, "FORWARDING INSTITUTION COUNTRY CODE"),
            new IFA_NUMERIC (  3, "POINT OF SERVICE ENTRY MODE"),
            new IFA_NUMERIC (  3, "CARD SEQUENCE NUMBER"),
            new IFA_NUMERIC (  3, "NETWORK INTERNATIONAL IDENTIFIEER"),
            new IFA_NUMERIC (  2, "POINT OF SERVICE CONDITION CODE"),
            new IFA_NUMERIC (  2, "POINT OF SERVICE PIN CAPTURE CODE"),
            new IFA_NUMERIC (  1, "AUTHORIZATION IDENTIFICATION RESP LEN"),
            new IFA_AMOUNT  (  9, "AMOUNT, TRANSACTION FEE"),
            new IFA_AMOUNT  (  9, "AMOUNT, SETTLEMENT FEE"),
            new IFA_AMOUNT  (  9, "AMOUNT, TRANSACTION PROCESSING FEE"),
            new IFA_AMOUNT  (  9, "AMOUNT, SETTLEMENT PROCESSING FEE"),
            new IFA_LLNUM   ( 11, "ACQUIRING INSTITUTION IDENT CODE"),
            new IFA_LLNUM   ( 11, "FORWARDING INSTITUTION IDENT CODE"),
            new IFA_LLCHAR  ( 28, "PAN EXTENDED"),
            new IFA_LLNUM   ( 37, "TRACK 2 DATA"),
            new IFA_LLLCHAR (104, "TRACK 3 DATA"),
            new IF_CHAR     ( 12, "RETRIEVAL REFERENCE NUMBER"),
            new IF_CHAR     (  6, "AUTHORIZATION IDENTIFICATION RESPONSE"),
            new IF_CHAR     (  2, "RESPONSE CODE"),
            new IF_CHAR     (  3, "SERVICE RESTRICTION CODE"),
            new IF_CHAR     (  8, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
            new IF_CHAR     ( 15, "CARD ACCEPTOR IDENTIFICATION CODE" ),
            new IF_CHAR     ( 40, "CARD ACCEPTOR NAME/LOCATION"),
            new IFA_LLCHAR  ( 25, "ADITIONAL RESPONSE DATA"),
            new IFA_LLCHAR  ( 76, "TRACK 1 DATA"),
            new IFA_LLLCHAR (999, "ADITIONAL DATA - ISO"),
            new IFA_LLLCHAR (999, "ADITIONAL DATA - NATIONAL"),
            new IFA_LLLCHAR (999, "ADITIONAL DATA - PRIVATE"),
            new IF_CHAR     (  3, "CURRENCY CODE, TRANSACTION"),
            new IF_CHAR     (  3, "CURRENCY CODE, SETTLEMENT"),
            new IF_CHAR     (  3, "CURRENCY CODE, CARDHOLDER BILLING"   ),
            new IFB_BINARY  (  8, "PIN DATA"   ),
            new IFA_NUMERIC ( 16, "SECURITY RELATED CONTROL INFORMATION"),
            new IFA_LLLCHAR (120, "ADDITIONAL AMOUNTS"),
            new IFA_LLLCHAR (999, "RESERVED ISO"),
            new IFA_LLLCHAR (999, "RESERVED ISO"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE"),
            new IFA_BINARY  (  8, "MESSAGE AUTHENTICATION CODE FIELD"),
            new IFA_BINARY  (  8, "BITMAP, EXTENDED"),
            new IFA_NUMERIC (  1, "SETTLEMENT CODE"),
            new IFA_NUMERIC (  2, "EXTENDED PAYMENT CODE"),
            new IFA_NUMERIC (  3, "RECEIVING INSTITUTION COUNTRY CODE"),
            new IFA_NUMERIC (  3, "SETTLEMENT INSTITUTION COUNTRY CODE"),
            new IFA_NUMERIC (  3, "NETWORK MANAGEMENT INFORMATION CODE"),
            new IFA_NUMERIC (  4, "MESSAGE NUMBER"),
            new IFA_NUMERIC (  4, "MESSAGE NUMBER LAST"),
            new IFA_NUMERIC (  6, "DATE ACTION"),
            new IFA_NUMERIC ( 10, "CREDITS NUMBER"),
            new IFA_NUMERIC ( 10, "CREDITS REVERSAL NUMBER"),
            new IFA_NUMERIC ( 10, "DEBITS NUMBER"),
            new IFA_NUMERIC ( 10, "DEBITS REVERSAL NUMBER"),
            new IFA_NUMERIC ( 10, "TRANSFER NUMBER"),
            new IFA_NUMERIC ( 10, "TRANSFER REVERSAL NUMBER"),
            new IFA_NUMERIC ( 10, "INQUIRIES NUMBER"),
            new IFA_NUMERIC ( 10, "AUTHORIZATION NUMBER"),
            new IFA_NUMERIC ( 12, "CREDITS, PROCESSING FEE AMOUNT"),
            new IFA_NUMERIC ( 12, "CREDITS, TRANSACTION FEE AMOUNT"),
            new IFA_NUMERIC ( 12, "DEBITS, PROCESSING FEE AMOUNT"),
            new IFA_NUMERIC ( 12, "DEBITS, TRANSACTION FEE AMOUNT"),
            new IFA_NUMERIC ( 16, "CREDITS, AMOUNT"),
            new IFA_NUMERIC ( 16, "CREDITS, REVERSAL AMOUNT"),
            new IFA_NUMERIC ( 16, "DEBITS, AMOUNT"),
            new IFA_NUMERIC ( 16, "DEBITS, REVERSAL AMOUNT"),
            new IFA_NUMERIC ( 42, "ORIGINAL DATA ELEMENTS"),
            new IF_CHAR     (  1, "FILE UPDATE CODE"),
            new IF_CHAR     (  2, "FILE SECURITY CODE"),
            new IF_CHAR     (  5, "RESPONSE INDICATOR"),
            new IF_CHAR     (  7, "SERVICE INDICATOR"),
            new IF_CHAR     ( 42, "REPLACEMENT AMOUNTS"),
            new IFA_BINARY  ( 8, "MESSAGE SECURITY CODE"),
            new IFA_AMOUNT  ( 17, "AMOUNT, NET SETTLEMENT"),
            new IF_CHAR     ( 25, "PAYEE"),
            new IFA_LLNUM   ( 11, "SETTLEMENT INSTITUTION IDENT CODE"),
            new IFA_LLNUM   ( 11, "RECEIVING INSTITUTION IDENT CODE"),
            new IFA_LLCHAR  ( 17, "FILE NAME"),
            new IFA_LLCHAR  ( 28, "ACCOUNT IDENTIFICATION 1"),
            new IFA_LLCHAR  ( 28, "ACCOUNT IDENTIFICATION 2"),
            new IFA_LLLCHAR (100, "TRANSACTION DESCRIPTION"),
            new IFA_LLLCHAR (999, "RESERVED ISO USE"),
            new IFA_LLLCHAR (999, "RESERVED ISO USE"),
            new IFA_LLLCHAR (999, "RESERVED ISO USE"),
            new IFA_LLLCHAR (999, "RESERVED ISO USE"),
            new IFA_LLLCHAR (999, "RESERVED ISO USE"),
            new IFA_LLLCHAR (999, "RESERVED ISO USE"),
            new IFA_LLLCHAR (999, "RESERVED ISO USE"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"   ),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"  ),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"),
            new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"),
            new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"),
            new ISOMsgFieldPackager(
                new IFA_LLLLLLBINARY (999, "RESERVED PRIVATE USE"),
                p127
            ),
            new IFA_LLLCHAR (999, "MAC 2")
        };
        protected class PostPrivatePackager extends ISOBasePackager
        {
                protected ISOFieldPackager fld127[] =
                {
                        new IF_CHAR             (0,   "PLACEHOLDER"),
                        new IFB_BITMAP  (8,       "BITMAP"),
                        new IFA_LLCHAR  (32,  "SWITCH KEY"),
                    new IF_CHAR     (48,  "ROUTING INFORMATION"),
                    new IF_CHAR     (22,  "POS DATA"),
                    new IF_CHAR     (73,  "SERVICE STATION DATA"),
                    new IFA_NUMERIC (2,   "AUTHORIZATION PROFILE"),
                    new IFA_LLCHAR  (50,  "CHECK DATA"),
                    new IFA_LLLCHAR (128, "RETENTION DATA"),
                    new IFA_LLLCHAR (255, "ADDITIONAL NODE DATA"),
                    new IFA_NUMERIC (3,   "CVV2"),
                    new IFA_LLCHAR  (32,  "ORIGINAL KEY"),
                    new IFA_LLCHAR  (25,  "TERMINAL OWNDER"),
                    new IF_CHAR     (17,  "POS GEOGRAPHIC DATA"),
                    new IF_CHAR     (8,   "SPONSOR BANK"),
                    new IFA_LLCHAR  (29,  "AVS REQUEST"),
                    new IF_CHAR     (1,   "AVS RESPONSE"),
                    new IFA_LLCHAR  (50,  "CARDHOLDER INFORMATION"),
                    new IFA_LLCHAR  (50,  "VALIDATION DATA"),
                    new IF_CHAR     (45,  "BANK DETAILS"),
                    new IFA_NUMERIC (8,   "AUTHORIZER DATE SETTLEMENT"),
                    new IFA_LLCHAR  (12,  "RECORD IDENTIFICATION"),
                    new IFA_LLLLLCHAR  (99999,  "STRUCTURED DATA"),
                    new IF_CHAR     (253,  "PAYEE NAME AND ADDRESS"),
                    new IFA_LLCHAR  (28,  "PAYER ACCOUNT INFORMATION"),
                    new IFA_LLLLCHAR(8000,  "ICC DATA")
                }; 

-chhil


On 10/13/06, ricmoore < richard...@gmail.com> wrote:

See the error when I ran that code here


java.lang.ArrayIndexOutOfBoundsException: 0
        at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
        at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
        at org.jpos.iso.ISOBasePackager.unpack (ISOBasePackager.java:217)

        at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
        at org.jpos.iso.ISOMsg.unpack (ISOMsg.java:322)

        at test.test.main(test.java:52)
<log realm="packager-debug.PostPrivatePackager" at="Fri Oct 13 09:23:01
WAT 2006.15">
  <unpack>

    <exception name="0">
    java.lang.ArrayIndexOutOfBoundsException: 0
        at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
        at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
        at org.jpos.iso.ISOBasePackager.unpack (ISOBasePackager.java:217)

        at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
        at org.jpos.iso.ISOMsg.unpack (ISOMsg.java:322)

        at test.test.main(test.java:52)
    </exception>
  </unpack>
</log>
error unpacking field 127
org.jpos.iso.ISOException: java.lang.ArrayIndexOutOfBoundsException : 0
(java.lang.ArrayIndexOutOfBoundsException: 0)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:293)
        at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
        at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
        at test.test.main(test.java:52)
Nested:java.lang.ArrayIndexOutOfBoundsException: 0
        at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
        at org.jpos.iso.IFB_BITMAP.unpack(IFB_BITMAP.java:94)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
        at
org.jpos.iso.ISOMsgFieldPackager.unpack (ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack (ISOBasePackager.java:217)

        at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
        at org.jpos.iso.ISOMsg.unpack (ISOMsg.java:322)
        at org.jpos.iso.IFB_BITMAP.unpack (IFB_BITMAP.java:94)

        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
        at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack (ISOBasePackager.java:229)

        at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
        at test.test.main(test.java:52)
      </nested-exception>
      org.jpos.iso.ISOException:
java.lang.ArrayIndexOutOfBoundsException : 0
(java.lang.ArrayIndexOutOfBoundsException: 0)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:293)
        at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
        at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
        at test.test.main(test.java:52)Exception in thread "main"
org.jpos.iso.ISOException : java.lang.ArrayIndexOutOfBoundsException: 0
(java.lang.ArrayIndexOutOfBoundsException: 0)
        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:293)
        at
org.jpos.iso.ISOMsgFieldPackager.unpack (ISOMsgFieldPackager.java:107)

        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:229)
        at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
        at test.test.main(test.java:52)
Nested:java.lang.ArrayIndexOutOfBoundsException : 0
        at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
Nested:java.lang.ArrayIndexOutOfBoundsException: 0
        at org.jpos.iso.ISOUtil.byte2BitSet(ISOUtil.java:500)
        at org.jpos.iso.IFB_BITMAP.unpack (IFB_BITMAP.java:94)

        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
        at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack (ISOBasePackager.java:229)

        at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:322)
        at test.test.main(test.java:52)
    </iso-exception>
  </unpack>
</log>

        at org.jpos.iso.IFB_BITMAP.unpack (IFB_BITMAP.java:94)

        at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:217)
        at
org.jpos.iso.ISOMsgFieldPackager.unpack(ISOMsgFieldPackager.java:107)
        at org.jpos.iso.ISOBasePackager.unpack (ISOBasePackager.java:229)

ricmoore

unread,
Oct 13, 2006, 6:12:29 AM10/13/06
to jPOS Users
Thanks I am using 1.5 where can I download 1.6

chhil

unread,
Oct 13, 2006, 6:45:42 AM10/13/06
to jpos-...@googlegroups.com
Maybe before you upgrade...try this

        GenericPackager pc = new GenericPackager("<location to postpack.xml>");
//        PostPackager pc = new PostPackager();

        Logger logger = new Logger();
        logger.addListener(new SimpleLogListener(System.out));
        pc.setLogger(logger, "packager-debug");
        ISOMsg m1 = new ISOMsg();
        m1.setPackager(pc);
        m1.unpack(ISOUtil.hex2byte (msg));
    //    m1.dump(System.out, "");
       
        ISOMsg m2 = (ISOMsg)m1.getValue(127);
        System.out.println(m2.getValue(2));

Postpack is part of the jpos distribution.
I will send the pospack  file to you offline and you can diff them to see if they are different... you may want to make sure the field definitions of 127 and 52 match up with your local file content.
The jpos site will have directions on ow to get the 1.6 .

-chhil

-chhil

On 10/13/06, ricmoore < richard...@gmail.com> wrote:

Mark Salter

unread,
Oct 13, 2006, 6:54:42 AM10/13/06
to jPOS Users

ricmoore wrote:
> Thanks I am using 1.5 where can I download 1.6]

http://svn.sourceforge.net/viewcvs.cgi/jpos/jpos6/ is the link off of
the jpos.org resources page (under versions...)

You will need a subversion client, I can recommend the Tortoise-svn
eclipse plugin from tigris.org, if you use eclipse.

--
Mark

ricmoore

unread,
Oct 13, 2006, 6:55:23 AM10/13/06
to jPOS Users
Thanks while I await the file. I tried modified the postpackager with
what you gave me. Recompile and build the jpos.jar and everything work
fine. How do I package same field 127 sample code with appreciated. I
want to echo the field back since I don't need it

chhil

unread,
Oct 13, 2006, 7:29:36 AM10/13/06
to jpos-...@googlegroups.com
May be I don't follow what you are asking...but

        ISOMsg m2 = (ISOMsg) m1.getValue(127);
        ISOMsg m3 = new ISOMsg();
        m3.set(m2);
        m3.dump(System.out, "m3");

Where m3 is the response message message..and the output looks like

m3<isomsg>
m3  <isomsg id="127">
m3    <field id="0" value=""/>
m3    <field id="2" value="0000387020"/>
m3    <field id="3" value="ZenithATMscrZIBeTranzSnk000002000011ZenithTG    "/>
m3    <field id="12" value="ZIBeTranzSnk"/>
m3    <field id="13" value="01234100001   566"/>
m3    <field id="14" value="ZENITH B"/>
m3    <field id="20" value="20060921"/>
m3  </isomsg>
m3</isomsg>


-chhil


On 10/13/06, ricmoore <richard...@gmail.com> wrote:

Mark Salter

unread,
Oct 13, 2006, 8:43:55 AM10/13/06
to jPOS Users

chhil wrote:
> May be I don't follow what you are asking...but
I think you guessed right...

>
> ISOMsg m2 = (ISOMsg) m1.getValue(127);
> ISOMsg m3 = new ISOMsg();

m3.set(4,"an example additional subfield");

Is how you add subfields, if you needed to.

--
Mark

Reply all
Reply to author
Forward
0 new messages