-
-
Notifications
You must be signed in to change notification settings - Fork 53
Home
Welcome to the iso_8583 wiki!
Welcome to the hows of iso_8583
iso_8583 is available as an npm package here https://www.npmjs.com/package/iso_8583 The best use case is with a nodejs tcp client or server sending/receiving messsages to/from an ISO 8583 interface
How to install and use iso_8583
npm install --save iso_8583
let iso_8583 = require('iso_8583')
To invoke the package initialize with the iso8583 json or object as argument. If the json contains any fields not defined in iso8583 or has no field 0, the error is returned in an object.
let testData = {
"0": "0100",
"2": "5413330",
"3": "000000",
"4": "000000002000",
"7": "0210160607",
"11": "148893",
"12": "160607",
"13": "0210",
"14": "2512",
"18": "4111",
"22": "141",
"23": "003",
"25": "00",
"26": "12",
"35": "5413330089020011D2512601079360805F",
"41": "31327676",
"42": "4D4F424954494C4",
"43": "My Termianl Business ",
"49": "404",
"45": "0303030204E4149524F4249204B452dataString04B45",
"123": "09010001000105010103040C010001"
};
let isopack = new iso_8583(isoJson)
The object initialized has the following methods:
To get the mti as a string:
isopack.getMti()
returns a 4 byte buffer containing the mti
isopack.getBmpsBinary()
111100100011110001000110110...
or an error object with error prop
isopack.getBitMapHex()
f23c46c020e880000000000000000020
or an error object with error prop
To get the assembled data:
isopack.assembleDataElements()
07541333000000000000000200002101606.. 253
or an error object with error prop
isopack.getBmpPack()
returns
{ mti: '0100',
bitmapHex: 'f23c46c020e880000000000000000020',
dataString: '07541333000000000000000200002101606071488931606070210251241111410030012345413330089020011D2512601079360805F313276764D4F424954494C44D6F6269746C6C204D65726368616E7420312030450303030204E4149524F4249204B452dataString04B4540403009010001000105010103040C010001',
length: 273,
lengthIndicator: [ '1', 17 ] }
let bufferMessage = isopack.getBufferMessage();
<Buffer 01 11 30 31 30 30 f2 3c 46 c0 20 e8 80 00 00 00 00 00 00 00 00 20 30 37 35 34 ...
Just parse the incoming buffer or string to the method
let incoming = new isopack().getIsoJSON(incoming)
let testData = {
"0": "0100",
"2": "5413330",
"3": "000000",
"4": "000000002000",
"7": "0210160607",
"11": "148893",
"12": "160607",
"13": "0210",
"14": "2512",
"18": "4111",
"22": "141",
"23": "003",
"25": "00",
"26": "12",
"35": "5413330089020011D2512601079360805F",
"41": "31327676",
"42": "4D4F424954494C4",
"43": "My Termianl Business ",
"49": "404",
"45": "0303030204E4149524F4249204B452dataString04B45",
"123": "09010001000105010103040C010001"
};
Initialize the iso object with the json as argument
let isoPack = new isoPack(testData)
isoPack.getXMLString()
Initialize with no argument
let isoPack = new isoPack()
parse the string to the method to get the iso json
let xmlTets = '<?xml version="1.0" encoding="UTF-8"?>\n' +
'<Iso8583PostXml>\n' +
'<MsgType>0200</MsgType>\n' +
'<Fields>\n' +
'<Field_002>4839123456709012</Field_002>\n' +
'<Field_003>000000</Field_003>\n' +
'<Field_004>000000001500</Field_004>\n' +
'<Field_007>0604074705</Field_007>\n' +
'<Field_011>804058</Field_011>\n' +
'<Field_012>074808</Field_012>\n' +
'<Field_013>0604</Field_013>\n' +
'<Field_014>0812</Field_014>\n' +
'<Field_015>0905</Field_015>\n' +
'<Field_022>901</Field_022>\n' +
'<Field_025>02</Field_025>\n' +
'<Field_026>05</Field_026>\n' +
'<Field_028>000000500</Field_028>\n' +
'<Field_030>000000500</Field_030>\n' +
'<Field_032>483912</Field_032>\n' +
'<Field_035>4839123456709012=08125876305082011</Field_035>\n' +
'<Field_037>D000A0030000</Field_037>\n' +
'<Field_040>507</Field_040>\n' +
'<Field_041>FOFUGUT1</Field_041>\n' +
'<Field_042>191121119111112</Field_042>\n' +
'<Field_043>Postilion Cafeteria Rondebosch ZA</Field_043>\n' +
'<Field_049>710</Field_049> <Field_056>1510</Field_056>\n' +
'<Field_059>0000000072</Field_059>\n' +
'<Field_123>211401213041013</Field_123>\n' +
'<Field_127_002>0007713856</Field_127_002>\n' +
'<Field_127_009>013040604040604016501100330000</Field_127_009>\n' +
'<Field_127_012>My Terminal Business</Field_127_012>\n' +
'<Field_127_020>20100604</Field_127_020>\n' +
'</Fields>\n' +
'</Iso8583PostXml>'
isoPack.getJsonFromXml(xmlTets)