Aug 25, 2007 - 05:24 AM
Long answer: depends on the format or flavour of your iso.
It's like this: the ISO-message roughly exists of 3 things:
- message type (MTI)
- data (elements)
The message type can be packed or unpacked and if unpacked, it can be either EBCDIC or ASCII.
If it's packed (like with "Hypercom" iso or Visa ISO). each byte contains 2 numbers, if you look at the hex value, which you have to "nibble" to get the expanded value.
So if your message type (and other numerical data elements) is packed, the message type is your first 2 bytes instead of your first 4 bytes, after which comes your bitmap.
Your bitmap can be either single, double or triple and also can be either hex or binary.
A normal Point of Sale message contains a single binary bitmap, i.e. 8 bytes with 64 bits turned on or off.
After you figure out which bits are on or off, you start parsing the data elements based on the bitmap data element definition, the fact if they're packed or not (if numeric), they are variable length and if they're alpha numeric, if they're ASCII or EBCDIC.
It's complicated but once you make one good routine with your data elements, format all defined in tables, you'll breeze through any type of ISO.
I'm programming on a daily basis with Hypercom ISO, Visa, Mastercard, Discover and another 3rd party vendor and they're all a bit different ...
Mar 24, 2009 - 06:45 AM
The Quomon Team
Jun 19, 2009 - 03:16 AM
Data Message Structure has four basic components:
[Message Header][Message Type ID][Bit Map][Data Fields]
To add more details:
Header Field 1 -> Header Length : 2 byte, 4-bit BCD
Header Field 2 -> NAC Header : 1 byte, 4-bit BCD
for Application data (transaction type) = '60' (used this)
for Management Data (Hypercom spesific) = '68'
Header Field 3 -> Destination ID : 2 byte, 4-bit BCD
Header Field 4 -> Source ID : 2 byte, 4-bit BCD
(Destination and Source ID must be swapped at the response message)
[Message Type Specifications] : 2 bytes, 4-bit BCD.
exp. 0500/0510 : is for Settlement Message
0200/0210 : is for Financial/Void Message.
[Bit Map] are:
Map 1 (primary) = fields 2 - 64
Map 2 (secondary) = fields 66 - 128
Map 3 (terstiary) = fields 130 - 149 and 192
The existing of secondary map, is indicate by first bit of the primary map. If secondary map exist, than the first bit of primay map is '1'.
If secondary map, exist and bit 65 is also '1', then the terstiary map exist (like that of field 1 in the primary map).
Then the [Data Fields].
Hope this will explained...
FX. Danang Dewanto