Hello There,
I am trying to prepare request for Amex with chip data, i.e., populating field 55 of ISO 8583 (EBCDIC format) request message. JPOS library version used is 2.0.2.
Expected Hex representation of field 55 of ISO request message is as below
F0F4F5C1C7D5E20001A83AAD88B56F55AF06020103A40002
i.e.,
3 bytes Variable Length Indicator - F0F4F5
6 bytes Header - C1C7D5E20001
Subfields - 1: A83AAD88B56F55AF, 2: 06020103A40002
I am trying to prepare field 55 using a sub XML as below
<isopackager emitBitmap="false" headerLength="6">
<isofield id="1" length="16" name="APPLICATION CRYPTOGRAM (AC)" class="org.jpos.iso.IFB_BINARY" />
<isofield id="2" length="64" name="ISSUER APPLICATION DATA (IAD)" class="org.jpos.iso.IFB_LLBINARY" />
</isopackager>
and parent XML as
<isopackager>
<isofield
id="0"
length="4"
name="MESSAGE TYPE INDICATOR"
pad="true"
class="org.jpos.iso.IFE_NUMERIC"/>
<isofield
id="1"
length="16"
name="BIT MAP"
class="org.jpos.iso.IFB_BITMAP"/>
<isofield
id="55"
length="255"
name="INTEGRATED CARD CIRCUIT SYSTEM RELATED DATA"
class="org.jpos.iso.IFE_LLLCHAR"/>
</isopackager>
Java code for packing request message is as follows
GenericPackager p = new GenericPackager("ICCDataIsoEBCDICProtocol.xml");
p.setHeaderLength(8);
ISOMsg df55 = new ISOMsg(55);
df55.setHeader("AGNS0001".getBytes());
df55.setPackager(p);
df55.set(new ISOField(1, "FEA7844EDDA049E8"));
df55.set(new ISOField(2, "0110A04009248000000000000000000000FF"));
GenericPackager p = new GenericPackager("IsoEBCDICProtocol.xml");
ISOMsg isoReq = new ISOMsg();
isoReq.setPackager(p);
isoReq.setMTI("1100");
isoReq.set(55, df55.pack());
isoReq.pack();
On packing iso message using above code, request message prepared is
F1F1F0F00000000000000200006141474E53303030314645413738343445444441303439453836303131304130343030393234383030303030303030303030303030303030303030304646
Which is far from expected format.
I have tried with different combinations of Data Types for isofield 55 like IFE_LLNUM, IF_CHAR, IFB_LLLBINARY but no luck. Every time it gives a different format.
Can anyone please help on above.