Пример #1
0
 public static String getIsoCodeFromAlphaCode(String alphacode) throws IllegalArgumentException {
   try {
     Currency c = findCurrency(alphacode);
     return ISOUtil.zeropad(Integer.toString(c.getIsoCode()), 3);
   } catch (ISOException e) {
     throw new IllegalArgumentException("Failed getIsoCodeFromAlphaCode/ zeropad failed?", e);
   }
 }
Пример #2
0
 /**
  * Return the String value associated with the given field path
  *
  * @param fpath field path
  * @return field's String value (may be null)
  */
 public String getString(String fpath) {
   String s = null;
   try {
     Object obj = getValue(fpath);
     if (obj instanceof String) s = (String) obj;
     else if (obj instanceof byte[]) s = ISOUtil.hexString((byte[]) obj);
   } catch (ISOException e) {
     // ignore ISOException - return null
   }
   return s;
 }
Пример #3
0
 /**
  * Return the String value associated with the given ISOField number
  *
  * @param fldno the Field Number
  * @return field's String value
  */
 public String getString(int fldno) {
   String s = null;
   if (hasField(fldno)) {
     try {
       Object obj = getValue(fldno);
       if (obj instanceof String) s = (String) obj;
       else if (obj instanceof byte[]) s = ISOUtil.hexString((byte[]) obj);
     } catch (ISOException e) {
       // ignore ISOException - return null
     }
   }
   return s;
 }
Пример #4
0
 /**
  * Creates an ISOField associated with fldno within this ISOMsg
  *
  * @param fldno field number
  * @param value field value
  */
 public void set(int fldno, String value) throws ISOException {
   if (value != null) {
     if (!(packager instanceof ISOBasePackager)) {
       // No packager is available, we can't tell what the field
       // might be, so treat as a String!
       set(new ISOField(fldno, value));
     } else {
       // This ISOMsg has a packager, so use it
       Object obj = ((ISOBasePackager) packager).getFieldPackager(fldno);
       if (obj instanceof ISOBinaryFieldPackager) {
         set(new ISOBinaryField(fldno, ISOUtil.hex2byte(value)));
       } else {
         set(new ISOField(fldno, value));
       }
     }
   } else unset(fldno);
 }
Пример #5
0
 public static Currency getCurrency(String code) throws ISOException {
   final String isoCode = ISOUtil.zeropad(code, 3);
   return findCurrency(isoCode);
 }
Пример #6
0
 public static Currency getCurrency(int code) throws ISOException {
   final String isoCode = ISOUtil.zeropad(Integer.toString(code), 3);
   return findCurrency(isoCode);
 }
  // public String getDebitCmd(String stCardRndNo, String stTerRndNo, String stAmt, String stPurse)
  // throws Exception {
  public ETerminalDataDto getDebitCmd(
      String stCardRndNo, String stTerRndNo, String stAmt, String stPurse) throws Exception {

    ETerminalDataDto objETerminalDataDto = new ETerminalDataDto();

    String strDebitCmd = "";
    String strResHeader = "";
    String strActDebitCmd = "";
    String strUserData = "";
    String strSignSessionKey = "";
    String strDebitSessionKey = "";
    String strRefno = "";
    String strEzlinkString = "";

    // String strDebitCmd=null;
    try {
      ezlink.info("\n-------SerialManager--------------START--------------------------------");
      ezlink.info("getDebitCmd Request received in " + SerialManager.class.getName());
      // Commet this after testing with main method;
      // serialDemo.initConfig()
      // serialDemo.connection.sendMessage(ISOUtil.hex2byte("020079600037000002007024058000C10004164999770007848180000000000000011111011000100309020037003237303031393630313638313638313035323934202020000334343400063031313030320388"));

      // Debit command
      byte[] debitCommand =
          connection.sendMessage(
              ISOUtil.hex2byte(HeaderUtil.getReqHeader(stCardRndNo, stTerRndNo, stAmt, stPurse)));
      System.out.println("Debit Command=" + ISOUtil.hexString(debitCommand));
      ezlink.info("Debit Command= : " + ISOUtil.hexString(debitCommand));

      /*
      byte[] recieptData = connection.sendMessage(ISOUtil.hex2byte(HeaderUtil.getReqRecieptData("EEF6BAADFDDB93685EC111ACD05D7133E9472DA4416D0C079000")));
      System.out.println("Reciept Data =" + ISOUtil.hexString(recieptData));
      ezlink.info("Reciept Data= : " + ISOUtil.hexString(recieptData));
      */
      // debitCommand =
      // ISOUtil.hex2byte("36303030303030303030313132303030301C343100165F332D39907B07D4C9C72441CF93C3461C3432000854495430303031201C3433001647058A8594B61B0707BD7794B3F7078D1C34340016134DBF682CD22C68A60D1F0E71F929D01C34350012DC7934737E93BE4FDC7934731C30303030303031313230303030");
      /*
      String[] strResSplit = ISOUtil.hexString(debitCommand).split("1C");

      for(int i=0;i<strResSplit.length;i++)
      {
      strResSplit[i] = strResSplit[i].substring(8);
      System.out.println(strResSplit[i]);
      ezlink.info("strResSplit [ "+i+" ]" + strResSplit[i]);
      }
      strDebitCmd = "250315021403"+stTerRndNo+strResSplit[1]+strResSplit[2];
      System.out.println("strDebitCmd= "+strDebitCmd +"  Len  "+strDebitCmd.length());
      ezlink.info("strDebitCmd= "+strDebitCmd+" Len : " + strDebitCmd.length());

      */
      // String strResponse = ISOUtil.hexString(recieptData);
      String strResponse = ISOUtil.hexString(debitCommand);
      ezlink.info("+++strResponse Length : " + strResponse.length());
      ezlink.info("+++strResponse  : " + strResponse);
      //          if (strResponse.length() == 222) {
      // ezlink.info("+++Inside IF  :
      // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" );
      /*
      //Old terminal
      strResHeader = strResponse.substring(0, 34);
      strActDebitCmd = strResponse.substring(44, 76);
      strUserData = strResponse.substring(86, 102);
      strSignSessionKey = strResponse.substring(112, 144);
      strDebitSessionKey = strResponse.substring(154, 186);
      strRefno = strResponse.substring(196, 220);
      */
      // New Terminal
      strResHeader = strResponse.substring(0, 34);
      strRefno = strResponse.substring(44, 68); // 24
      strActDebitCmd = strResponse.substring(78, 110); // 32
      strUserData = strResponse.substring(120, 136); // 16
      strSignSessionKey = strResponse.substring(146, 178); // 32
      strDebitSessionKey = strResponse.substring(188, 220); // 32

      strEzlinkString = strResponse.substring(230, strResponse.length() - 2);

      System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++");
      System.out.println("Last two digits: " + strResponse.substring(strResponse.length() - 2));
      System.out.println("Response length : " + strResponse.length());
      System.out.println("Response from terminal DC : " + strResponse);
      System.out.println("Ezlink String : " + strEzlinkString);
      System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++");

      ezlink.info("\n--------SERIAL MANAGER-------RESPONSE--------------------");
      ezlink.info("strResHeader : " + strResHeader);
      ezlink.info("strActDebitCmd : " + strActDebitCmd);
      ezlink.info("strUserData : " + strUserData);
      ezlink.info("strSignSessionKey : " + strSignSessionKey);
      ezlink.info("strDebitSessionKey : " + strDebitSessionKey);
      ezlink.info("strRefno : " + strRefno);
      ezlink.info("strEzlinkString : " + strEzlinkString);
      ezlink.info("\n--------SERIAL MANAGER-------RESPONSE--------------------");

      strDebitCmd = "250315021403" + stTerRndNo + strActDebitCmd + strUserData;
      System.out.println("strDebitCmd= " + strDebitCmd + "  Len  " + strDebitCmd.length());
      ezlink.info("strDebitCmd= " + strDebitCmd + " Len : " + strDebitCmd.length());

      objETerminalDataDto.setDebitCmd(strDebitCmd);
      objETerminalDataDto.setTerminalSessionKey(strSignSessionKey);
      objETerminalDataDto.setDebitSessionKey(strDebitSessionKey);
      objETerminalDataDto.setEzLinkString(strEzlinkString);
      /*
                  } else {
                      //ezlink.info("+++Inside IF  : ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" );
                      System.out.println("Response from the Terminal not received fully...");
                      ezlink.info("Response from the Terminal not received fully...!!!!!!!");
                  }
      */
    } catch (Exception exp) {
      System.out.println(exp);
      ezlink.error(new Object(), exp);
      throw exp;
    }
    // return strDebitCmd;
    return objETerminalDataDto;
  }
  // --------------------------getDecryptedRecieptData-------------------------------------------------------------
  // public String getDebitCmd(String stCardRndNo, String stTerRndNo, String stAmt, String stPurse)
  // throws Exception {
  public String getDecryptedRecieptData(ETerminalDataDto objETerminalDataDto) throws Exception {

    // ETerminalDataDto objETerminalDataDto=new ETerminalDataDto();

    String strDecryptedRecieptDataRefNo = "";
    String strDecryptedRecieptData = "";
    String strResHeader = "";

    // String strDebitCmd=null;
    try {
      ezlink.info(
          "\n-------SerialManager--------------START----4 decrypting RecieptData-------------------");
      ezlink.info("getDecryptedRecieptData Request received in " + SerialManager.class.getName());
      // Commet this after testing with main method;
      // serialDemo.initConfig()
      // serialDemo.connection.sendMessage(ISOUtil.hex2byte("020079600037000002007024058000C10004164999770007848180000000000000011111011000100309020037003237303031393630313638313638313035323934202020000334343400063031313030320388"));

      // Debit command
      byte[] decRecieptData = null;
      try {
        decRecieptData =
            connection.sendMessage(
                ISOUtil.hex2byte(
                    HeaderUtil.getReqRecieptData(
                        objETerminalDataDto.getRecieptData(),
                        objETerminalDataDto.getTerminalSessionKey(),
                        objETerminalDataDto.getDebitSessionKey(),
                        objETerminalDataDto.getCan(),
                        objETerminalDataDto.getEzLinkString(),
                        "")));
      } catch (Exception e) {
        e.printStackTrace();
      }
      System.out.println("Decrypted Reciept Data=" + ISOUtil.hexString(decRecieptData));
      ezlink.info("Decrypted Reciept Data= : " + ISOUtil.hexString(decRecieptData));
      String strResponse = ISOUtil.hexString(decRecieptData);
      ezlink.info("+++Decrypted Reciept Data strResponse Length : " + strResponse.length());
      ezlink.info("+++Decrypted Reciept Data strResponse  : " + strResponse);
      //          if (strResponse.length() == 222) {
      // ezlink.info("+++Inside IF  :
      // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" );

      strResHeader = strResponse.substring(0, 34);
      strDecryptedRecieptDataRefNo = strResponse.substring(44, 68); // 24

      strDecryptedRecieptData = strResponse.substring(78, strResponse.length() - 2);

      System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++");
      System.out.println("Last two digits: " + strResponse.substring(strResponse.length() - 2));
      System.out.println("Response length : " + strResponse.length());
      System.out.println("Response from terminal DC : " + strResponse);
      System.out.println("Decrypted Ezlink String : " + strDecryptedRecieptData);
      System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++");

      ezlink.info(
          "\n--------SERIAL MANAGER-------RESPONSE----4DecryptedRecieptData----------------");
      ezlink.info("strResHeader : " + strResHeader);

      ezlink.info("strDecryptedRecieptDataRefNo : " + strDecryptedRecieptDataRefNo);
      ezlink.info("strDecryptedRecieptData : " + strDecryptedRecieptData);
      ezlink.info("\n--------SERIAL MANAGER-------RESPONSE--------------------");

      // strDebitCmd = "250315021403" + stTerRndNo + strActDebitCmd + strUserData;
      // System.out.println("strDebitCmd= " + strDebitCmd + "  Len  " + strDebitCmd.length());
      // ezlink.info("strDebitCmd= " + strDebitCmd + " Len : " + strDebitCmd.length());

      /*
                  } else {
                      //ezlink.info("+++Inside IF  : ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" );
                      System.out.println("Response from the Terminal not received fully...");
                      ezlink.info("Response from the Terminal not received fully...!!!!!!!");
                  }
      */
    } catch (Exception exp) {
      System.out.println(exp);
      ezlink.error(new Object(), exp);
      throw exp;
    }

    return strDecryptedRecieptData;
  }