<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd">
<!-- ISO 8583:1993 (ASCII) field descriptions for GenericPackager -->
<isopackager>
 <isofield
   id="0"
   length="4"
   name="Message Type Indicator"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="1"
   length="64"
   name="Bitmap"
   class="org.jpos.iso.IFA_BITMAP"/>
 <isofield
   id="2"
   length="16"
   name="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="7"
   length="10"
   name="Date and time, transmission"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="11"
   length="6"
   name="Systems trace audit number"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="12"
   length="6"
   name="Date and time, Local transaction"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="13"
   length="4"
   name="Date, Effective"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="15"
   length="4"
   name="Date, Settlement"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="18"
   length="4"
   name="Merchant type"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="32"
   length="4"
   name="Acquirer institution identification code"
   class="org.jpos.iso.IFA_LLNUM"/>
 <isofield
   id="37"
   length="12"
   name="Retrieval reference number"
   class="org.jpos.iso.IFA_LLCHAR"/>
 <isofield
   id="39"
   length="2"
   name="Action code"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="41"
   length="15"
   name="Card acceptor terminal identification"
   class="org.jpos.iso.IFA_LLCHAR"/>
 <isofield
   id="48"
   length="120"
   name="Additional data - private"
   class="org.jpos.iso.IFA_LLLCHAR"/>
 <isofield
   id="49"
   length="3"
   name="Currency code, Transaction"
   class="org.jpos.iso.IFA_NUMERIC"/>
 <isofield
   id="63"
   length="3"
   name="Reserved for private use"
   class="org.jpos.iso.IFA_LLNUM"/>
</isopackager>
723A4001088180001623334444555566663800990000000000000725090909100001090909072507306011040001ab9999999999ab9999999999999016000008389999999936003110
ISOMsg msg = new ISOMsg();
    msg.setMTI("0200");
    msg.setPackager(packager);
    msg.unpack(message.getBytes());
    formattedLogISOMsg(msg);
Exception in thread "main" org.jpos.iso.ISOException: org.jpos.iso.IFA_LLNUM: Problem unpacking field 2 (org.jpos.iso.ISOException: Field length 33 too long. Max: 16) unpacking field=2, consumed=20
  at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:266)
  at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:454)
  at App.main(App.java:40)
public class PackISOMessage {
  public static void main(String[] args) {
    PackISOMessage iso = new PackISOMessage();
    try {
      String message = iso.buildISOMessage();
      System.out.printf("Message = %s", message);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public String buildISOMessage() throws Exception {
    try {
      GenericPackager packager = new GenericPackager("packager/iso93ascii.xml");
      ISOMsg isoMsg = new ISOMsg();
      isoMsg.setPackager(packager);
      isoMsg.setMTI("0200");
      isoMsg.set(1, "723A400108818000");
      isoMsg.set(2, "2333444455556666");
      isoMsg.set(3, "380099");
      isoMsg.set(4, ISOUtil.zeropad(350000, 12));
      isoMsg.set(7, "0725090909");
      isoMsg.set(11, "100001");
      isoMsg.set(12, "090909");
      isoMsg.set(13, "0725");
      isoMsg.set(15, "0730");
      isoMsg.set(18, "6011");
      isoMsg.set(32, "0001");
      isoMsg.set(37, "ab999999999999");
// Â Â Â Â Â Â isoMsg.set(39, "00");
      isoMsg.set(41, "ab999999999999999");
      isoMsg.set(41, "ab999999999999999");
      isoMsg.set(48, "83899999999");
      isoMsg.set(49, "360");
      isoMsg.set(63, "110");
      printISOMessage(isoMsg);
      byte[] result = isoMsg.pack();
      return new String(result);
    } catch (ISOException e) {
      throw new Exception(e);
    }
  }
  public void printISOMessage(ISOMsg isoMsg) {
    try {
      System.out.printf("MTI = %s%n", isoMsg.getMTI());
      for (int i = 1; i <= isoMsg.getMaxField(); i++) {
        if (isoMsg.hasField(i)) {
          System.out.printf("Field (%s) = %s%n", i, isoMsg.getString(i));
        }
      }
    } catch (ISOException e) {
      e.printStackTrace();
    }
  }
}
0200F23A400108818002162333444455556666380099000000350000072509090910000109090907250007306011040001ab999999999999ab9999999999999990118389999999936003110
public class UnpackISOMessage {
  public static void main(String[] args) {
    UnpackISOMessage iso = new UnpackISOMessage();
    try {
      ISOMsg isoMsg = iso.parseISOMessage();
      iso.printISOMessage(isoMsg);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public ISOMsg parseISOMessage() throws Exception {
    String message = "0200F23A400108818002162333444455556666380099000000350000072509090910000109090907250007306011040001ab999999999999ab9999999999999990118389999999936003110";
    System.out.printf("Message = %s%n", message);
    try {
      GenericPackager packager = new GenericPackager("packager/iso93ascii.xml");
      ISOMsg isoMsg = new ISOMsg();
      isoMsg.setPackager(packager);
      isoMsg.unpack(message.getBytes());
      return isoMsg;
    } catch (ISOException e) {
      throw new Exception(e);
    }
  }
  public void printISOMessage(ISOMsg isoMsg) {
    try {
      System.out.printf("MTI = %s%n", isoMsg.getMTI());
      for (int i = 1; i <= isoMsg.getMaxField(); i++) {
        if (isoMsg.hasField(i)) {
          System.out.printf("Field (%s) = %s%n", i, isoMsg.getString(i));
        }
      }
    } catch (ISOException e) {
      e.printStackTrace();
    }
  }
}
java.lang.Exception: org.jpos.iso.ISOException: org.jpos.iso.IFA_LLNUM: Problem unpacking field 2 (org.jpos.iso.ISOException: Field length 66 too long. Max: 16) unpacking field=2, consumed=36
  at com.fanjavaid.UnpackISOMessage.parseISOMessage(UnpackISOMessage.java:35)
  at com.fanjavaid.UnpackISOMessage.main(UnpackISOMessage.java:18)
Caused by: org.jpos.iso.ISOException: org.jpos.iso.IFA_LLNUM: Problem unpacking field 2 (org.jpos.iso.ISOException: Field length 66 too long. Max: 16) unpacking field=2, consumed=36
  at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:268)
  at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:454)
  at com.fanjavaid.UnpackISOMessage.parseISOMessage(UnpackISOMessage.java:32)
  ... 1 more
--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
Join us in IRC at http://webchat.freenode.net/?channels=jpos
You received this message because you are subscribed to the "jPOS Users" group.
Please see http://jpos.org/wiki/JPOS_Mailing_List_Readme_first
To post to this group, send email to jpos-...@googlegroups.com
To unsubscribe, send email to jpos-users+...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jpos-users
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/56C1E955.2030302%40talktalk.net.
For more options, visit https://groups.google.com/d/optout.
--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To post to this group, send email to jpos-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/a195b668-1987-43ac-b8f1-54e336428a9e%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAPazefBLogts3KOP%2B9BVQS9py47BLUwJJ8K19S97tduJ85t%3DMg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
<?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="SECRET ID" 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"/>
  Â
</isopackager>
When i try to unpack this message :
010072300000000000001642896976489287520200000000000050000515155540123456155540
Using this code :
GenericPackager packager = new GenericPackager("src/main/resources/basic.xml");
      // Setting packager
      ISOMsg isoMsg = new ISOMsg();
      isoMsg.setPackager(packager);
      isoMsg.set(0, "0100");
      // Setting MTI
      // Setting processing code
      isoMsg.set(2, "4289697648928752");
      isoMsg.set(3, "020000");
      // Setting transaction amount
      isoMsg.set(4, "5000");
      // Setting transmission date and time
      isoMsg.set(7, new SimpleDateFormat("MMddHHmmss").format(new Date()));
      // Setting system trace audit number
      isoMsg.set(11, "123456");
      String time = ISODate.getTime(new Date());
      System.out.println("Time ::" + time);
      isoMsg.set(12,"155540");
I getting invalid length Error while validating it on online utility URL:: http://www.chileoffshore.com/en/iso8583/dump-iso-message
import java.io.IOException;
import java.net.MalformedURLException;
import org.jdom.JDOMException;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOUtil;
import org.jpos.iso.packager.GenericPackager;
import org.jpos.util.Logger;
import org.jpos.util.SimpleLogListener;
public class Test {
public static void main(String[] args) throws ISOException, MalformedURLException, JDOMException, IOException {
GenericPackager packager = new GenericPackager("cfg\\packager.xml");
Logger l = new Logger();
l.addListener(new SimpleLogListener());
packager.setLogger(l, "jsagfj");
ISOMsg m = new ISOMsg();
m.setPackager(packager);
try {
m.unpack("010072300000000000001642896976489287520200000000000050000515155540123456155540".getBytes(ISOUtil.CHARSET));
m.dump(System.out, "");
}
catch (Exception e) {
e.printStackTrace();
m.dump(System.out, "");
}
}
}
<log realm="jsagfj" at="2019-05-20T17:30:01.903" lifespan="32ms">
<unpack>
303130303732333030303030303030303030303031363432383936393736343839323837353230323030303030303030303030303530303030353135313535353430313233343536313535353430
<bitmap>{2, 3, 4, 7, 11, 12}</bitmap>
<unpack fld="2" packager="org.jpos.iso.IFA_LLNUM">
<value>4289697648928752</value>
</unpack>
<unpack fld="3" packager="org.jpos.iso.IFA_NUMERIC">
<value>020000</value>
</unpack>
<unpack fld="4" packager="org.jpos.iso.IFA_NUMERIC">
<value>000000005000</value>
</unpack>
<unpack fld="7" packager="org.jpos.iso.IFA_NUMERIC">
<value>0515155540</value>
</unpack>
<unpack fld="11" packager="org.jpos.iso.IFA_NUMERIC">
<value>123456</value>
</unpack>
<unpack fld="12" packager="org.jpos.iso.IFA_NUMERIC">
<value>155540</value>
</unpack>
</unpack>
</log>
<isomsg direction="none">
<!-- org.jpos.iso.packager.GenericPackager[cfg\packager.xml] -->
<field id="0" value="0100"/>
<field id="2" value="4289697648928752"/>
<field id="3" value="020000"/>
<field id="4" value="000000005000"/>
<field id="7" value="0515155540"/>
<field id="11" value="123456"/>
<field id="12" value="155540"/>
</isomsg>
--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To post to this group, send email to jpos-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/51332e09-9f9a-4d1b-a833-0b6edbecf2e5%40googlegroups.com.
A bitmap message (postilion.realtime.postbridge.Iso8583PB) could not be unpacked, because of an error while unpacking field number 2 (LLVAR n   ..19) at offset 12. When the error occurred, the bitmap looked like this:
0100:
ISO 8583 (Binary Format) Message:
0000 Â 30 31 30 30 F2 3C 44 81 Â 08 E0 80 00 00 00 00 00 Â 0100.<D.........
0010 Â 00 00 00 22 31 36 34 32 Â 38 39 36 39 37 36 34 38 Â ..."164289697648
0020 Â 39 32 38 37 35 32 30 30 Â 30 30 30 30 30 30 30 30 Â 9287520000000000
0030 Â 30 30 30 32 30 30 30 30 Â 30 35 32 32 31 37 31 35 Â 0002000005221715
0040 Â 30 30 31 30 35 37 39 30 Â 31 37 31 35 30 30 30 33 Â 0010579017150003
0050 Â 32 36 32 34 30 37 35 36 Â 39 31 30 31 32 30 38 30 Â 2624075691012080
0060 Â 36 34 35 34 38 39 39 39 Â 30 38 35 30 37 31 30 35 Â 6454899908507105
0070 Â 37 39 30 30 30 30 35 30 Â 30 34 31 30 32 37 31 37 Â 7900005004102717
0080 Â 34 20 20 20 20 20 20 20 Â 20 20 43 4F 4D 4D 45 52 Â 4 Â Â Â Â COMMER
0090 Â 43 49 41 4C 38 33 36 30 Â 44 75 62 61 69 41 45 41 Â CIAL8360DubaiAEA
00a0 Â 45 20 20 20 20 20 20 20 Â 20 20 20 20 20 20 20 20 Â E Â Â Â Â Â Â Â
00b0 Â 20 20 37 38 34 30 31 35 Â 31 30 30 30 33 30 31 30 Â Â 78401510003010
00c0 Â 34 30 30 30 30 30 30 30 Â 30 30 30 31 31 00 40 00 Â 4000000000011.@.
00d0 Â 00 00 00 00 00 32 32 32 Â Â Â Â Â Â Â Â Â Â Â Â Â .....222
I have used below code to pack the ISO Message.
GenericPackager packager = new GenericPackager("src/main/resources/basic.xml");
   Â
    ISOMsg isoMsg = new ISOMsg();
    isoMsg.setPackager(packager);
    isoMsg.set(0, "0100");
    isoMsg.set(2, "4289697648928752");
    isoMsg.set(4, "000000020000");
    isoMsg.set(3, "000000");
    isoMsg.set(7, new SimpleDateFormat("MMddHHmmss").format(new Date()));
    isoMsg.set(11, "105790");
    isoMsg.set(12, new SimpleDateFormat("HHmmss").format(new Date()));
    isoMsg.set(13, "0326");
       isoMsg.set(14, "2407");
       isoMsg.set(18, "5691");
       isoMsg.set(22, "012");
       isoMsg.set(25, "08");
       isoMsg.set(32, "454899");
       isoMsg.set(37, "908507105790");
       isoMsg.set(41, "00050041");
       isoMsg.set(42, "027174     ");
       isoMsg.set(43, "COMMERCIAL8360DubaiAEAE");
    isoMsg.set(49, "784");
    isoMsg.set(123,"100030104000000");
    isoMsg.set("127.010", "222");
    byte[] bIsoMsg = isoMsg.pack();
    System.out.println(ISOUtil.hexdump(bIsoMsg));
Below is the rules defined for my JPOS.
JPOS 2.1.2 Rules:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager PUBLIC
    "-//jPOS/jPOS Generic Packager DTD 1.0//EN"
    "http://jpos.org/dtd/generic-packager-1.0.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.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="7"
   length="10"
   name="TRANSMISSION DATE AND TIME"
   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="18"
   length="4"
   name="MERCHANTS TYPE"
   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="25"
   length="2"
   name="POINT OF SERVICE CONDITION CODE"
   class="org.jpos.iso.IFA_NUMERIC"/>
Â
 <isofield
   id="32"
   length="11"
   name="ACQUIRING INSTITUTION IDENT CODE"
   class="org.jpos.iso.IFA_LLNUM"/>
Â
 <isofield
   id="37"
   length="12"
   name="RETRIEVAL REFERENCE NUMBER"
   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="49"
   length="3"
   name="CURRENCY CODE, TRANSACTION"
   class="org.jpos.iso.IFA_NUMERIC"/>
Â
 <isofield
   id="123"
   length="999"
   name="RESERVED PRIVATE USE"
   class="org.jpos.iso.IFA_LLLCHAR"/>
Â
 <isofieldpackager
   id="127" Â
   length="999999"
   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"/>
  Â
 </isofieldpackager>
 </isopackager>
It will be very helpful if you could help me out in the above issue,because I am not able to rectify the issue every thing looks correctly defined.
Please help. thanks.Â
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAPazefB8xxd10iHEGkVwa-DTd_dH1FQX%3DiLFU4YdxEksOhAWhg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj_z%3DRXp06d-dxopTV%3DuXK0Y4mox-AOGtK9xLytk0JAq%2Bw%40mail.gmail.com.
30 31 31 30 f2 3e 44 95 0a e0 84 00 00 00 00 00
00 00 00 22 31 36 34 32 38 39 36 39 37 36 34 38
39 32 38 37 35 32 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 36 31 37 31 36 30 33
35 31 31 30 35 37 39 30 31 36 30 33 35 31 30 33
32 36 32 34 30 37 30 34 31 39 35 36 39 31 30 31
32 30 38 43 30 30 30 30 30 30 30 30 43 30 30 30
30 30 30 30 30 30 36 34 35 34 38 39 39 39 30 38
35 30 37 31 30 35 37 39 30 39 34 30 30 30 35 30
30 34 31 30 32 37 31 37 34 20 20 20 20 20 20 20
20 20 43 4f 4d 4d 45 52 43 49 41 4c 38 33 36 30
44 75 62 61 69 41 45 41 45 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 37 38 34 30 32 30
30 30 35 33 37 38 34 43 30 30 30 30 30 30 30 30
30 30 30 30 30 31 35 31 30 30 30 33 30 31 30 34
30 30 30 30 30 30 30 30 30 30 36 38 24 00 10 00
02 00 00 00 41 44 59 45 4e 53 52 43 20 20 20 20
4d 42 43 53 4e 4b 20 20 20 20 20 20 31 30 35 37
39 30 31 30 35 37 39 30 4d 42 43 52 55 41 45 54
47 20 20 20 33 30 32 30 31 39 30 36 31 37 39 31
Is there any utility to parse the hex dump response??
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAPazefAJ8-UUD9_WEbDWCALOuzYVXyX5Od5Y3D054b08VdTCCw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj9x9sbzNGhxT-GmK%2B4ikY84Vf%2B5rY709SWGzwJTRxGaWQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAPazefA3CuvbiykqqYLzDiZM2y3mh9QJRqFZMEMFM7QBdJCALg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj8nuiWknT8MZ6rtcrruTKmG9e2mQP_xWx2jXLhDakCiRA%40mail.gmail.com.
For the lazy in you, here’s a gift:
public static void main(String[] args)
{
String s="0000 30 31 31 30 F2 3E 44 95 0A E0 84 00 00 00 00 00 0110.>D.........\n" +
"0010 00 00 00 22 31 36 34 32 38 39 36 39 37 36 34 38 ...\"164289697648\n" +
"0020 39 32 38 37 35 32 30 30 30 30 30 30 30 30 30 30 9287520000000000\n" +
"0030 30 30 30 30 30 30 30 30 30 36 31 37 31 36 30 33 0000000006171603\n" +
"0040 35 31 31 30 35 37 39 30 31 36 30 33 35 31 30 33 5110579016035103\n" +
"0050 32 36 32 34 30 37 30 34 31 39 35 36 39 31 30 31 2624070419569101\n" +
"0060 32 30 38 43 30 30 30 30 30 30 30 30 43 30 30 30 208C00000000C000\n" +
"0070 30 30 30 30 30 30 36 34 35 34 38 39 39 39 30 38 0000006454899908\n" +
"0080 35 30 37 31 30 35 37 39 30 39 34 30 30 30 35 30 5071057909400050\n" +
"0090 30 34 31 30 32 37 31 37 34 20 20 20 20 20 20 20 041027174 \n" +
"00a0 20 20 43 4F 4D 4D 45 52 43 49 41 4C 38 33 36 30 COMMERCIAL8360\n" +
"00b0 44 75 62 61 69 41 45 41 45 20 20 20 20 20 20 20 DubaiAEAE \n" +
"00c0 20 20 20 20 20 20 20 20 20 20 37 38 34 30 32 30 784020\n" +
"00d0 30 30 35 33 37 38 34 43 30 30 30 30 30 30 30 30 0053784C00000000\n" +
"00e0 30 30 30 30 30 31 35 31 30 30 30 33 30 31 30 34 0000015100030104\n" +
"00f0 30 30 30 30 30 30 30 30 30 30 32 38 30 30 30 30 0000000000280000\n" +
"0100 30 30 30 30 30 34 30 30 30 30 30 30 31 30 35 37 0000040000001057\n" +
"0110 39 30 31 30 35 37 39 30 90105790";
byte[] bytes = decodeHexDump(s);
System.out.println("bytes = " + bytes.length);
}
public static byte[] decodeHexDump(String s)
{
StringBuffer sb=new StringBuffer();
Arrays.stream(s.split("\n"))
.forEach(x->{
x=x.replaceAll("^.{4} ", "");
x=x.replaceAll("\\s\\s", " ");
x=x.replaceAll("(([0-9A-F][0-9A-F]\\s){1,16}).*$","$1");
x=x.replaceAll("\\s","");
sb.append(x);
});
return ISOUtil.hex2byte(sb.toString());
}
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAPazefBQ3BVW4a7p2x9y1-NSN3zrirzCud557HMoM_x%3D-xvG5w%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CALK1SyyRwSSO0Lp0o-qXok%2B8XapJPSDJvvpn0mhAKuJ4-FmQkQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAPazefDT_y8nktqvu73-7Gim8dUj8SynScNLth-Pw5cGx7X1Og%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CALK1SyzYrOE%3Duc6P09z9kPGZ113hnhF8XJtK1fS1u5%2BbmyT%2B8g%40mail.gmail.com.
no need for StringBUilder if using Collectors.joining()
public static byte[] decodeHexDump(String s) { return ISOUtil.hex2byte( Arrays.stream(s.split("\n")) .map(x-> x.replaceAll("^.{4} ", "") .replaceAll("\\s\\s", " ") .replaceAll("(([0-9A-F][0-9A-F]\\s){1,16}).*$","$1") .replaceAll("\\s","") ).collect(Collectors.joining()) ); }
Transactility, Inc.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAAgSK%3DnDmn8DrGi6mb5SGGijZO4LR659fORAiGNdHXur7%3DSoGg%40mail.gmail.com.
--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To post to this group, send email to jpos-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAAgSK%3DmQSD%3DrSUFvkJ92LqOBYW_k29VfDLLJ3YF2JjGETPF0mQ%40mail.gmail.com.
Revised method:
public static byte[] decodeHexDump(String s)
{
return
ISOUtil.hex2byte(
Arrays.stream(s.split("\\r\\n|[\\r\\n]"))
.map(x ->
x.replaceAll("^.{4} ", "").
replaceAll("\\s\\s", " ").
replaceAll("(([0-9A-F][0-9A-F]\\s){1,16}).*$", "$1").
replaceAll("\\s", "")
).collect(Collectors.joining()));
}
--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To post to this group, send email to jpos-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAAgSK%3DmQSD%3DrSUFvkJ92LqOBYW_k29VfDLLJ3YF2JjGETPF0mQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CALK1Syy1sAZ9qC8Oj%3Dqqv2GTs5GJ%2Bt_6U2QV_6AV5-QfikSeGw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CALK1Syy1sAZ9qC8Oj%3Dqqv2GTs5GJ%2Bt_6U2QV_6AV5-QfikSeGw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAAgSK%3Dm0Zw2kKY4WrbfPiig9BVchtxSOeNY7dUDZXEt7n_xtPg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj9_RCxvoD19Dx%2BBT99BNg%3DnP7jb-oE%2BMA95pV6U_hGeKw%40mail.gmail.com.