Error Packing Field 52

1,600 views
Skip to first unread message

ola

unread,
Mar 27, 2009, 4:11:37 AM3/27/09
to jPOS Users
Hello,

Thanks all these while for your supports! I really appreciate you
guys.

I am having issue packing field 52 (PIN BLOCK). I have a JPOS
application that connects to Postilion Server, which is working fine,
but I need to introduce PIN security. Right now, I can do key exchange
(get working key using master session) from the Postilion, which I
used to generate hexadecimal 16 xters PIN BLOCK (e.g.
FAA57088694EF194). The problem is that JPOS could not pack this field
by throwing an exception below:

<iso-exception>
org.jpos.iso.IFA_BINARY: Problem packing field 52
....

I am using postpack.xml for my packager as seen below:

Logger logger = new Logger();
logger.addListener(new SimpleLogListener(System.out));
ISOPackager p = new GenericPackager ("cfg/
postpack.xml");
p.setLogger (logger, "test");
ClientChannel channel=new PostChannel("10.64.10.30",
6308,p);

pinblock=new GetPinBlock();
mux = new ISOMUX(channel);
....

Part of the logger message is shown below:
...
<log realm="test-channel/10.64.10.30:6308" at="Thu Mar 26 20:20:47 GMT
+01:00 2009.859">
<send>
<isomsg direction="outgoing">
<field id="2" value="627629020655572997"/>
<field id="3" value="312000"/>
<field id="4" value="000000000000"/>
<field id="7" value="1212120534"/>
<field id="11" value="001939"/>
<field id="12" value="120538"/>
<field id="13" value="1212"/>
<field id="14" value="1102"/>
<field id="22" value="901"/>
<field id="23" value="001"/>
<field id="25" value="00"/>
<field id="32" value="627629"/>
<field id="35" value="627629020655572997=1102101"/>
<field id="41" value="10570011"/>
<field id="42" value="105700110000001"/>
<field id="43" value="LAGOS LAGOS NG"/
>
<field id="49" value="566"/>
<field id="52" value="FAA57088694EF194"/>
<field id="102" value="6026512918"/>
<field id="123" value="301201254140000"/>
</isomsg>
<iso-exception>
org.jpos.iso.IFA_BINARY: Problem packing field 52
<nested-exception>
java.lang.ClassCastException: java.lang.String
at org.jpos.iso.ISOBinaryFieldPackager.pack
(ISOBinaryFieldPackager.java:136)
at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:142)
at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311)
at org.jpos.iso.BaseChannel.send(BaseChannel.java:437)
at org.jpos.iso.ISOMUX.doTransmit(ISOMUX.java:374)
at org.jpos.iso.ISOMUX.run(ISOMUX.java:398)
at java.lang.Thread.run(Thread.java:595)
</nested-exception>
org.jpos.iso.ISOException: org.jpos.iso.IFA_BINARY: Problem
packing field 52 (java.lang.ClassCastException: java.lang.String)
at org.jpos.iso.ISOBinaryFieldPackager.pack
(ISOBinaryFieldPackager.java:151)
at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:142)
at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311)
at org.jpos.iso.BaseChannel.send(BaseChannel.java:437)
at org.jpos.iso.ISOMUX.doTransmit(ISOMUX.java:374)
at org.jpos.iso.ISOMUX.run(ISOMUX.java:398)
at java.lang.Thread.run(Thread.java:595)
Nested:java.lang.ClassCastException: java.lang.String
at org.jpos.iso.ISOBinaryFieldPackager.pack
(ISOBinaryFieldPackager.java:136)
at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:142)
at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311)
at org.jpos.iso.BaseChannel.send(BaseChannel.java:437)
at org.jpos.iso.ISOMUX.doTransmit(ISOMUX.java:374)
at org.jpos.iso.ISOMUX.run(ISOMUX.java:398)
at java.lang.Thread.run(Thread.java:595)
</iso-exception>
</send>
</log>
....

Please kindly put me through ....

Ola

Mark Salter

unread,
Mar 27, 2009, 6:03:57 AM3/27/09
to jpos-...@googlegroups.com
ola wrote:

The short answer is :-

You are passing a String as a value to a field that is expecting a
byte[]. Looking at the code that is throwing this exception gives you
that detail.

The long answer is:-

The Exception trace is not too good to us, your version of these classes
does not match that in the repository. I can understand why it might be
different, but you need consider your changes when seeking help here.

To be certain of what your problem is...

We would need to see:-

your code from ISOMSg creation through to and including the code that
sets field 52.

It would also not do any harm to show us the definition of field 52 in
the packager xml file. As you have changed code, you might also have
changed postpack.xml.

If you are setting a packager (via ISOMsg.setPackager) then you might
benefit from a helper conversion from String to byte[]. If not (the
likely case here), you need to pass the right data in otherwise as you
see, problems will occur (GIGO).


--
Mark

Alejandro Revilla

unread,
Mar 27, 2009, 6:03:25 AM3/27/09
to jpos-...@googlegroups.com
> I used to generate hexadecimal 16 xters PIN BLOCK (e.g.
> FAA57088694EF194). The problem is that JPOS could not pack this field
> by throwing an exception below:
>
You see the data in hex (16 bytes), but you probably want to send 8
bytes. Use m.set (52, ISOUtil.hex2byte ("FAA57088694EF194") to
solve your problem.

Alejandro Revilla

unread,
Mar 27, 2009, 6:06:22 AM3/27/09
to jpos-...@googlegroups.com
And BTW, this message doesn't have a field 0 ... weird..

PS.- I hope that's a test card.

ola

unread,
Mar 27, 2009, 6:53:59 AM3/27/09
to jPOS Users
The packing was successful after i used m.set (52, ISOUtil.hex2byte
("FAA57088694EF194"), but the challenge it introduced is that
postilion could not unpack my message again. When i compared the
packed message dump sent from my JPOS application (the field 52 was
converted to 16 hex characters: 46 41 41 35 37 30 38 38 36 39 34 45
46 31 39 34) with what postilion was expecting (type as b8),
postilion was unable to pack the message. Please, is there a way to go
about this so that the dump value for field 52 will be b8:
Like i said earlier, I used the packager below:

ISOPackager p = new GenericPackager ("cfg/
postpack.xml");
ClientChannel channel=new PostChannel("10.64.10.30",
6308,p);

My postpack.xml is shown below:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd">

<!--
field 52 (PIN DATA): IFA_BINARY replaced by IFB_BINARY
field 127 (RESERVED PRIVATE USE): IFA_LLLBINARY replaced by
IFA_LLLLLLBINARY
See:
http://groups-beta.google.com/group/jpos-users/browse_thread/thread/e60807e917c8c170/e29a681592d63a2b#e29a681592d63a2b
-->
<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.IFB_BITMAP"/>
<isofield
id="2"
length="19"
name="PAN - PRIMARY ACCOUNT NUMBER"
class="org.jpos.iso.IFA_LLNUM"/>
<isofield
id="3"
length="6"
name="PROCESSING CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="4"
length="12"
name="AMOUNT, TRANSACTION"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="5"
length="12"
name="AMOUNT, SETTLEMENT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="6"
length="12"
name="AMOUNT, CARDHOLDER BILLING"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="7"
length="10"
name="TRANSMISSION DATE AND TIME"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="8"
length="8"
name="AMOUNT, CARDHOLDER BILLING FEE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="9"
length="8"
name="CONVERSION RATE, SETTLEMENT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="10"
length="8"
name="CONVERSION RATE, CARDHOLDER BILLING"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="11"
length="6"
name="SYSTEM TRACE AUDIT NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="12"
length="6"
name="TIME, LOCAL TRANSACTION"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="13"
length="4"
name="DATE, LOCAL TRANSACTION"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="14"
length="4"
name="DATE, EXPIRATION"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="15"
length="4"
name="DATE, SETTLEMENT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="16"
length="4"
name="DATE, CONVERSION"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="17"
length="4"
name="DATE, CAPTURE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="18"
length="4"
name="MERCHANTS TYPE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="19"
length="3"
name="ACQUIRING INSTITUTION COUNTRY CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="20"
length="3"
name="PAN EXTENDED COUNTRY CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="21"
length="3"
name="FORWARDING INSTITUTION COUNTRY CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="22"
length="3"
name="POINT OF SERVICE ENTRY MODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="23"
length="3"
name="CARD SEQUENCE NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="24"
length="3"
name="NETWORK INTERNATIONAL IDENTIFIEER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="25"
length="2"
name="POINT OF SERVICE CONDITION CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="26"
length="2"
name="POINT OF SERVICE PIN CAPTURE CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="27"
length="1"
name="AUTHORIZATION IDENTIFICATION RESP LEN"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="28"
length="9"
name="AMOUNT, TRANSACTION FEE"
class="org.jpos.iso.IFA_AMOUNT"/>
<isofield
id="29"
length="9"
name="AMOUNT, SETTLEMENT FEE"
class="org.jpos.iso.IFA_AMOUNT"/>
<isofield
id="30"
length="9"
name="AMOUNT, TRANSACTION PROCESSING FEE"
class="org.jpos.iso.IFA_AMOUNT"/>
<isofield
id="31"
length="9"
name="AMOUNT, SETTLEMENT PROCESSING FEE"
class="org.jpos.iso.IFA_AMOUNT"/>
<isofield
id="32"
length="11"
name="ACQUIRING INSTITUTION IDENT CODE"
class="org.jpos.iso.IFA_LLNUM"/>
<isofield
id="33"
length="11"
name="FORWARDING INSTITUTION IDENT CODE"
class="org.jpos.iso.IFA_LLNUM"/>
<isofield
id="34"
length="28"
name="PAN EXTENDED"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="35"
length="37"
name="TRACK 2 DATA"
class="org.jpos.iso.IFA_LLNUM"/>
<isofield
id="36"
length="104"
name="TRACK 3 DATA"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="37"
length="12"
name="RETRIEVAL REFERENCE NUMBER"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="38"
length="6"
name="AUTHORIZATION IDENTIFICATION RESPONSE"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="39"
length="2"
name="RESPONSE CODE"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="40"
length="3"
name="SERVICE RESTRICTION CODE"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="41"
length="8"
name="CARD ACCEPTOR TERMINAL IDENTIFICACION"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="42"
length="15"
name="CARD ACCEPTOR IDENTIFICATION CODE"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="43"
length="40"
name="CARD ACCEPTOR NAME/LOCATION"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="44"
length="25"
name="ADITIONAL RESPONSE DATA"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="45"
length="76"
name="TRACK 1 DATA"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="46"
length="999"
name="ADITIONAL DATA - ISO"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="47"
length="999"
name="ADITIONAL DATA - NATIONAL"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="48"
length="999"
name="ADITIONAL DATA - PRIVATE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="49"
length="3"
name="CURRENCY CODE, TRANSACTION"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="50"
length="3"
name="CURRENCY CODE, SETTLEMENT"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="51"
length="3"
name="CURRENCY CODE, CARDHOLDER BILLING"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="52"
length="8"
name="PIN DATA"
class="org.jpos.iso.IFA_BINARY"/>
<isofield
id="53"
length="16"
name="SECURITY RELATED CONTROL INFORMATION"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="54"
length="120"
name="ADDITIONAL AMOUNTS"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="55"
length="999"
name="RESERVED ISO"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="56"
length="999"
name="RESERVED ISO"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="57"
length="999"
name="RESERVED NATIONAL"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="58"
length="999"
name="RESERVED NATIONAL"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="59"
length="999"
name="RESERVED NATIONAL"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="60"
length="999"
name="RESERVED PRIVATE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="61"
length="999"
name="RESERVED PRIVATE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="62"
length="999"
name="RESERVED PRIVATE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="63"
length="999"
name="RESERVED PRIVATE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="64"
length="8"
name="MESSAGE AUTHENTICATION CODE FIELD"
class="org.jpos.iso.IFA_BINARY"/>
<isofield
id="65"
length="8"
name="BITMAP, EXTENDED"
class="org.jpos.iso.IFA_BINARY"/>
<isofield
id="66"
length="1"
name="SETTLEMENT CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="67"
length="2"
name="EXTENDED PAYMENT CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="68"
length="3"
name="RECEIVING INSTITUTION COUNTRY CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="69"
length="3"
name="SETTLEMENT INSTITUTION COUNTRY CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="70"
length="3"
name="NETWORK MANAGEMENT INFORMATION CODE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="71"
length="4"
name="MESSAGE NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="72"
length="4"
name="MESSAGE NUMBER LAST"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="73"
length="6"
name="DATE ACTION"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="74"
length="10"
name="CREDITS NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="75"
length="10"
name="CREDITS REVERSAL NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="76"
length="10"
name="DEBITS NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="77"
length="10"
name="DEBITS REVERSAL NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="78"
length="10"
name="TRANSFER NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="79"
length="10"
name="TRANSFER REVERSAL NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="80"
length="10"
name="INQUIRIES NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="81"
length="10"
name="AUTHORIZATION NUMBER"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="82"
length="12"
name="CREDITS, PROCESSING FEE AMOUNT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="83"
length="12"
name="CREDITS, TRANSACTION FEE AMOUNT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="84"
length="12"
name="DEBITS, PROCESSING FEE AMOUNT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="85"
length="12"
name="DEBITS, TRANSACTION FEE AMOUNT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="86"
length="16"
name="CREDITS, AMOUNT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="87"
length="16"
name="CREDITS, REVERSAL AMOUNT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="88"
length="16"
name="DEBITS, AMOUNT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="89"
length="16"
name="DEBITS, REVERSAL AMOUNT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="90"
length="42"
name="ORIGINAL DATA ELEMENTS"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="91"
length="1"
name="FILE UPDATE CODE"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="92"
length="2"
name="FILE SECURITY CODE"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="93"
length="5"
name="RESPONSE INDICATOR"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="94"
length="7"
name="SERVICE INDICATOR"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="95"
length="42"
name="REPLACEMENT AMOUNTS"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="96"
length="8"
name="MESSAGE SECURITY CODE"
class="org.jpos.iso.IFA_BINARY"/>
<isofield
id="97"
length="17"
name="AMOUNT, NET SETTLEMENT"
class="org.jpos.iso.IFA_AMOUNT"/>
<isofield
id="98"
length="25"
name="PAYEE"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="99"
length="11"
name="SETTLEMENT INSTITUTION IDENT CODE"
class="org.jpos.iso.IFA_LLNUM"/>
<isofield
id="100"
length="11"
name="RECEIVING INSTITUTION IDENT CODE"
class="org.jpos.iso.IFA_LLNUM"/>
<isofield
id="101"
length="17"
name="FILE NAME"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="102"
length="28"
name="ACCOUNT IDENTIFICATION 1"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="103"
length="28"
name="ACCOUNT IDENTIFICATION 2"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="104"
length="100"
name="TRANSACTION DESCRIPTION"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="105"
length="999"
name="RESERVED ISO USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="106"
length="999"
name="RESERVED ISO USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="107"
length="999"
name="RESERVED ISO USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="108"
length="999"
name="RESERVED ISO USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="109"
length="999"
name="RESERVED ISO USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="110"
length="999"
name="RESERVED ISO USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="111"
length="999"
name="RESERVED ISO USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="112"
length="999"
name="RESERVED NATIONAL USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="113"
length="999"
name="RESERVED NATIONAL USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="114"
length="999"
name="RESERVED NATIONAL USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="115"
length="999"
name="RESERVED NATIONAL USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="116"
length="999"
name="RESERVED NATIONAL USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="117"
length="999"
name="RESERVED NATIONAL USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="118"
length="999"
name="RESERVED NATIONAL USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="119"
length="999"
name="RESERVED NATIONAL USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="120"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="121"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="122"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="123"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="124"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="125"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="126"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLCHAR"/>

<isofieldpackager
id="127"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLLLLBINARY"
packager="org.jpos.iso.packager.GenericSubFieldPackager">
<isofield
id="0"
length="0"
name="PLACEHOLDER"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="1"
length="8"
name="BITMAP"
class="org.jpos.iso.IFB_BITMAP"/>
<isofield
id="2"
length="32"
name="SWITCH KEY"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="3"
length="48"
name="ROUTING INFORMATION"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="4"
length="22"
name="POS DATA"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="5"
length="73"
name="SERVICE STATION DATA"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="6"
length="2"
name="AUTHORIZATION PROFILE"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="7"
length="50"
name="CHECK DATA"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="8"
length="128"
name="RETENTION DATA"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="9"
length="255"
name="ADDITIONAL NODE DATA"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="10"
length="3"
name="CVV2"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="11"
length="32"
name="ORIGINAL KEY"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="12"
length="25"
name="TERMINAL OWNDER"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="13"
length="17"
name="POS GEOGRAPHIC DATA"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="14"
length="8"
name="SPONSOR BANK"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="15"
length="29"
name="AVS REQUEST"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="16"
length="1"
name="AVS RESPONSE"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="17"
length="50"
name="CARDHOLDER INFORMATION"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="18"
length="50"
name="VALIDATION DATA"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="19"
length="45"
name="BANK DETAILS"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="20"
length="8"
name="AUTHORIZER DATE SETTLEMENT"
class="org.jpos.iso.IFA_NUMERIC"/>
<isofield
id="21"
length="12"
name="RECORD IDENTIFICATION"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="22"
length="99999"
name="STRUCTURED DATA"
class="org.jpos.iso.IFA_LLLLLCHAR"/>
<isofield
id="23"
length="253"
name="PAYEE NAME AND ADDRESS"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="24"
length="28"
name="PAYER ACCOUNT INFORMATION"
class="org.jpos.iso.IFA_LLCHAR"/>
<isofield
id="25"
length="8000"
name="ICC DATA"
class="org.jpos.iso.IFA_LLLLCHAR"/>
</isofieldpackager>

<isofield
id="128"
length="999"
name="MAC 2"
class="org.jpos.iso.IFA_LLLCHAR"/>

</isopackager>

Thanks.

Ola

On Mar 27, 11:06 am, Alejandro Revilla <a...@jpos.org> wrote:
> And BTW, this message doesn't have afield0 ... weird..

Mark Salter

unread,
Mar 27, 2009, 7:07:07 AM3/27/09
to jpos-...@googlegroups.com
ola wrote:
> The packing was successful after i used m.set (52, ISOUtil.hex2byte
> ("FAA57088694EF194"), but the challenge it introduced is that
> postilion could not unpack my message again.
Again?

> When i compared the
> packed message dump sent from my JPOS application (the field 52 was
> converted to 16 hex characters: 46 41 41 35 37 30 38 38 36 39 34 45
> 46 31 39 34) with what postilion was expecting (type as b8),

These byte are 'ascii' characters forming the hexadecimal character
representation of the binary value set.

> postilion was unable to pack the message. Please, is there a way to go
> about this so that the dump value for field 52 will be b8:

Yes, get the correct definition of this field in your packager...

> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <!DOCTYPE isopackager SYSTEM "genericpackager.dtd">
>
> <!--
> field 52 (PIN DATA): IFA_BINARY replaced by IFB_BINARY

This comment does *not* reflect the definition of field 52 which is
using IFA_BINARY?

[snip]
> <isopackager>
[snip]


> <isofield
> id="52"
> length="8"
> name="PIN DATA"
> class="org.jpos.iso.IFA_BINARY"/>

[snip]
> </isopackager>
>

If postillion is expecting 8 byte of binary data then this should be:-

<isofield
id="52"
length="8"
name="PIN DATA"

class="org.jpos.iso.IFB_BINARY"/>

As the comments seem to indicate is was already changed to?

--
Mark

ola

unread,
Mar 27, 2009, 10:25:19 AM3/27/09
to jPOS Users
OH! Thank you guys. It works now...

On Mar 27, 12:07 pm, Mark Salter <marksal...@talktalk.net> wrote:
> ola wrote:
> > Thepackingwas successful after i used m.set (52, ISOUtil.hex2byte
> > ("FAA57088694EF194"), but the challenge it introduced is that
> > postilion could not unpack my message again.
>
> Again?
>
> > When i compared the
> > packed message dump sent from my JPOS application (thefield52was
> > converted to 16 hex characters: 46 41  41 35 37 30 38 38 36 39 34 45
> > 46 31 39 34) with what postilion was expecting  (type as b8),
>
> These byte are 'ascii' characters forming the hexadecimal character
> representation of the binary value set.
>
> > postilion was unable to pack the message. Please, is there a way to go
> > about this so that the dump value forfield52will be b8:
>
> Yes, get the correct definition of thisfieldin your packager...
>
> > <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> > <!DOCTYPE isopackager SYSTEM "genericpackager.dtd">
>
> > <!--
> >  field52(PIN DATA): IFA_BINARY replaced by IFB_BINARY
>
> This comment does *not* reflect the definition offield52which is
Reply all
Reply to author
Forward
0 new messages