ISOMsg

437 views
Skip to first unread message

saple

unread,
Jul 29, 2009, 4:31:53 AM7/29/09
to jPOS Users
Hi guys, I've been wondering w/c one is the correct way of converting
hex strings into byte array?

String str =
"0330303801000A8000009430000000000093350824192218130415018630343135323231383133313930303131303731333338";

ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packger);

--> isoMsg.unpack(str.getBytes());
or
--> isoMsg.unpack(ISOUtil.hext2byte(str));

isoMsg.dump(System.out, " ");

And what are the difference between the the two? Thank you so much.


Mark Salter

unread,
Jul 29, 2009, 4:40:46 AM7/29/09
to jpos-...@googlegroups.com
saple wrote:
> Hi guys, I've been wondering w/c one is the correct way of converting
> hex strings into byte array?
>
> String str =
> "0330303801000A8000009430000000000093350824192218130415018630343135323231383133313930303131303731333338";
>
> ISOMsg isoMsg = new ISOMsg();
> isoMsg.setPackager(packger);
>
> --> isoMsg.unpack(str.getBytes());
Nope, unless you want the bytes of each of those characters.

> or
> --> isoMsg.unpack(ISOUtil.hext2byte(str));
Nor this, it won't compile (typo).

You want to :-

isoMsg.unpack(ISOUtil.hex2byte(str));

>
> And what are the difference between the the two?

first returns the byte[] of each character, the second returns the
byte[] created by consider each *pair* of digits as *hexadecimal* and
then forming a single byte for each pair.

Of course what you actually want to do is tell us what packager you are
using and if it expects *binary* or *ascii* character data as input to
it's unpack method.

I have *highlighted* each word you might want to search and find out about.

--
Mark

Mark Salter

unread,
Jul 29, 2009, 4:48:06 AM7/29/09
to jpos-...@googlegroups.com
Mark Salter wrote:

> first returns the byte[] of each character, the second returns the
> byte[] created by consider each *pair* of digits as *hexadecimal* and
> then forming a single byte for each pair.
>

Opps

> I have *highlighted* each word you might want to search and find out
> about.
>

I don't mean for you to search for *pair*, that highlight was for
emphasis only.

--
Mark

saple

unread,
Jul 29, 2009, 5:18:10 AM7/29/09
to jPOS Users
Thanks for the response.

This is the packager that I am using

GenericPackager packager = new GenericPackager("iso87ascii.xml");

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

<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="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="1"
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="6"
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="16"
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"/>
<isofield
id="127"
length="999"
name="RESERVED PRIVATE USE"
class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield
id="128"
length="8"
name="MAC 2"
class="org.jpos.iso.IFA_BINARY"/>
</isopackager>


String str =
"0330303801000A8000009430000000000093350824192218130415018630343135323231383133313930303131303731333338";

ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packger);
isoMsg.unpack(ISOUtil.hex2byte(str));
isoMsg.dump(System.out, " ");

when I try to run this code, I got this kind of error

error unpacking field 2
org.jpos.iso.ISOException: org.jpos.iso.IFA_LLNUM: Problem unpacking
field 2 (java.lang.NegativeArraySizeException)
at org.jpos.iso.ISOStringFieldPackager.unpack
(ISOStringFieldPackager.java:178)
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:233)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:344)
at edc.Test.main(Test.java:24)

what is wrong with this packager? This is a sample message from an EDC
terminal...

does jPOs have a packager that is made specially for EDC messages?

Thank you

Mark Salter

unread,
Jul 29, 2009, 5:43:40 AM7/29/09
to jpos-...@googlegroups.com
saple wrote:

>
> This is the packager that I am using
>
> GenericPackager packager = new GenericPackager("iso87ascii.xml");
>

[packager snip]


>
> String str =
> "0330303801000A8000009430000000000093350824192218130415018630343135323231383133313930303131303731333338";
>
> ISOMsg isoMsg = new ISOMsg();
> isoMsg.setPackager(packger);
> isoMsg.unpack(ISOUtil.hex2byte(str));
> isoMsg.dump(System.out, " ");
>
> when I try to run this code, I got this kind of error
>
> error unpacking field 2
> org.jpos.iso.ISOException: org.jpos.iso.IFA_LLNUM: Problem unpacking
> field 2 (java.lang.NegativeArraySizeException)
> at org.jpos.iso.ISOStringFieldPackager.unpack
> (ISOStringFieldPackager.java:178)
> at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:233)
> at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:344)
> at edc.Test.main(Test.java:24)
>
> what is wrong with this packager? This is a sample message from an EDC
> terminal...

I don't know if this packager matches your EDC terminal message
structure, but I do know that the packager is expecting ascii characters
and not binary as it uses IFA, so you can drop the hex character to
binary conversion...

ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packger);

isoMsg.unpack(str.getBytes());
isoMsg.dump(System.out, " ");

*But* I think you might have the wrong packager completely and you have
an extra byte at the start.

>
> does jPOs have a packager that is made specially for EDC messages?

This is for you to decide - you should have the EDC message spec;
picking or making one is very easy and is your first step?

Is the message an ISO8583 structure:-
"0330303801000A8000009430000000000093350824192218130415018630343135323231383133313930303131303731333338"
?

what is the '03' at the start an STX perhaps?

Your MTI is not 4 bytes, but 3 - looks like "008" - unless you have
swapped the first two digits; which would give you "0008"

How long is your bit map?

All questions you need to consider the answers for.

I also think this sample is a 'hex dump' of a ascii-character/binary
message, so you need to determine what your raw message looks like (so
you can get a packager) before proceeding.

This sample has - I think been formatted for a human, so is no good for
'testing' unless you can accurately restore it to it's raw state before
unpacking.

--
Mark

chhil

unread,
Jul 29, 2009, 5:58:47 AM7/29/09
to jpos-...@googlegroups.com
Please attach loggers to get a better description of errors etc.

-chhil

saple

unread,
Jul 29, 2009, 6:01:55 AM7/29/09
to jPOS Users
Thanks for the reply actually this are the EDC specs

Field_2 Account Number n ..19
Field_3 Processing Code n 6
Field_4 Amount, Transaction n 12
Field_11 System Trace Audit Number n 6
Field_12 Time, Local Transaction n 6
Field_13 Date, Local Transaction n 4
Field_14 Date, Expiration n 4
Field_22 Point of Service Entry Mode n 4
Field_24 Network International Identifier n 4
Field_25 Point of Service Condition Code n 2
Field_27 PayPass Indicator ans 1
Field_35 Track II Data z ..37
Field_37 Retrieval Reference Number an 12
Field_38 Authorization Identification Response an 6
Field_39 Response Code an 2
Field_41 Card Acceptor Terminal Identification ans 8
Field_42 Card Acceptor Identification Code ans 15
Field_48 Add Data – Private (Batch no) and (Tick no) ans … 999
Field_52 PIN Block Data B 64
Field_54 Additional Amount an ...120
Field_55 EMV Chip Data ans …999
Field_60 Private Use(Original Amount) ans ...999
Field_61 Product Code ans ...999
Field_62 Invoice/ECR No ans ...999
Field_63 Additional Data ans ...999

how do I set up a custom packager for this specifications, and do I
have to use IF_UNUSED/IF_NOP for unused fields(FIELD 36...etc)?

"0330303801000A8000009430000000000093350824192218130415018630343135323231383133313930303131303731333338"

with regards to this message

0330 - MTI
303801000A800000 - BITMAP

we have remove the header from the previous raw message

this is the original raw message from the dump

00 38 60 04 64 01 86 03 30 30 38 01 00 0A 80 00 00 94 30 00 00 00 00
00 93 35 08 24 19 22 18 13 04 15 01 86 30 34 31 35 32 32 31 38 31 33
31 39 30 30 31 31 30 37 31 33 33 38

Thank you

Mark Salter

unread,
Jul 29, 2009, 6:25:34 AM7/29/09
to jpos-...@googlegroups.com
saple wrote:
> Thanks for the reply actually this are the EDC specs
>
[snip]
>

We don't need this spec, you do?

Find out what the abbreviations mean this will help you pick or form a
packager.

> how do I set up a custom packager for this specifications, and do I
> have to use IF_UNUSED/IF_NOP for unused fields(FIELD 36...etc)?

Sounds good.

Search this mailing list for lot's of other advice in getting going.

>
> "0330303801000A8000009430000000000093350824192218130415018630343135323231383133313930303131303731333338"
>
> with regards to this message
>
> 0330 - MTI
> 303801000A800000 - BITMAP

Are you certain about this - did the terminal spec state this?

No PAN (field 2) in this message then? That would explain why I can't
see a length for one.

--
Mark

Reply all
Reply to author
Forward
0 new messages