Hi All,
Data Elements
===============================
1100 2 :
3 : 004000
4 : 000000001000
11 : 000001
12 : 010818004699
14 :
19 : 356
22 : 101150600120
24 : 180
25 : 1234
26 : 5399
42 : 200000000019
49 : 356
=======================================
Hexa dump
====================================
1100703425c000408000164862698906428354004000000000001000000001010817262975130103561011506001200180123453993230303030303030303031392020200003333536
So we have required converting to EBCDIC Format
Ex:
(Bank Expecting) the below format
The Auth request packet should be in HEX EBCDIC format and would like –
AuthorizationRequestParam=F1F1F0F0703424C128E08200F1F5F3F7F4F2F4F5F0F0F1F7F4F1F0F0F7F0F0F4F0F0F0F0F0F0F0F0F0F0F0F3F0F0F0F3F5F0F0F0F2F1F7F0F7F0F3F1F6F0F5F2F0F2F1F0F3F3F5F6F5F1F0F1F0F1F5F1F1F1F4C3F1F9F0F0F7F0F1F1F1F1F1F0F0F0F0F0F0F0F1F6F2F3F7F3F7F4F2F4F5F0F0F1F7F4F1F0F0F7C4F2F1F0F3F2F0F1F1F5F0F4F1F2F3F4F5F0F0F0F0F0F7F1F8F4F1F0F3F5F0F0F0F2FXFXFXFXFXF0F7F1FXFXFXFXFXFXFXFXF8F54040404040F4F9XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXD4E0F5XXXXXXXXXXXXXXXXXXXXXXXXXXF6F0F5F7C1C7D5E20001F34BC16BC1AC7C7D0706020103A4200224FC27EA0069000000800017070300000000003000035603563C000000000000000080
After Parsing the above
(Bank Excepting) the below format
F1F1F0F0
703424C128E08200
F1F5 F3F7F4F2F4F5F0F0F1F7F4F1F0F0F7
F0F0F4F0F0F0
F0F0F0F0F0F0F0F0F3F0F0F0
F3F5F0F0F0F2
F1F7F0F7F0F3F1F6F0F5F2F0
F2F1F0F3
F3F5F6
F5F1F0F1F0F1F5F1F1F1F4C3
F1F9F0
F0F7F0F1
F1F1F1F1
F0F0F0F0F0F0F0F1F6F2F3F7
F3F7F4
F2F4F5F0F0F1F7F4F1F0F0F7C4F2F1F0F3F2F0F1F1F5F0F4F1F2F3F4F5F0F0F0F0F0F7F1F8F4F1F0F3F5F0F0F0F2FXFXFXFXFXF0F7F1FXFXFXFXFXFXFXFXF8F54040404040F4F9XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXD4E0F5XXXXXXXXXXXXXXXXXXXXXXXXXXF6F0F5F7C1C7D5E20001F34BC16BC1AC7C7D0706020103A4200224FC27EA0069000000800017070300000000003000035603563C000000000000000080
=========================
Snippet code :
=========================
Below are the step we use to follow
Packing the Data Elements
byte[] a2 = getIsoMessage().pack();
public static String toHexString (byte[] b) {
StringBuilder sb = new StringBuilder( b.length * 2 );
for ( int i=0 ; i<b.length ; i++ ) {
//look up high nibble char
sb.append( hexChar [ ( b[ i] & 0xf0 ) >>> 4 ] ) ;
//look up low nibble char
sb.append( hexChar [ b[ i] & 0x0f ] ) ;
}
return sb.toString() ;
}
==================================
After packing the data converting to hex value
====================================
String msg = FormatUtils.toHexString(args);
Ex : 1100703425c000408000164862698906428354004000000000001000000001010817262975130103561011506001200180123453993230303030303030303031392020200003333536
After Parsing Hexa dump value
1100
703425c00040800016
4862698906428354
004000
000000001000
000001
010817262975
1301
0356
101150600120
0180
1234
5399
32 30303030303030303031392020200003
33 35 36
==========================
Converting the Hex value to EBCDIC Format
========================
byte[] bytes = msg.getBytes("CP1047");
int i;
for (i = 0; i < bytes.length; i++) {
formattedString += String.format("%X", bytes[i]);
}
after converting to EBCDIC Format
below is the result
F1F1F0F0
F7F0F3F4F2F583F0F0F0F4F0F8F0F0F0F1F6
F4F8F6F2F6F9F8F9F0F6F4F2F8F3F5F4
F0F0F4F0F0F0F0F0F0F0F0F0F0F0F1F0F0F0F0F0F0F0F0F1F0F2F0F8F1F2F0F1F3F7F1F9F1F3F0F1F0F3F5F6F1F0F1F1F5F0F6F0F0F1F2F0F0F1F8F0F1F2F3F4F5F3F9F9F3F2F3F0F3F0F3F0F3F0F3F0F3F0F3F0F3F0F3F0F3F1F3F9F2F0F2F0F2F0F0F0F0F3F3F3F3F5F3F6
So my concern is even bit map is appended with 'F' which should not happened,may be what i'm converting is also not correct, it should be the above behaviour what Bank Expecting,Please guide me in the conversion if possible provide me the code snippet for the same.
Thanks,
Karimullah Syed.