예제 #1
0
  private void _checkAccountCRC(String frontendname, String blz, String number) {
    // pruefsummenberechnung nur wenn blz/kontonummer angegeben sind
    if (blz == null || number == null) {
      return;
    }
    if (blz.length() == 0 || number.length() == 0) {
      return;
    }

    // daten merken, die im urspruenglich verwendet wurden (um spaeter
    // zu wissen, ob sie korrigiert wurden)
    String orig_blz = blz;
    String orig_number = number;

    while (true) {
      // daten validieren
      boolean crcok = HBCIUtils.checkAccountCRC(blz, number);

      // aktuelle daten merken
      String old_blz = blz;
      String old_number = number;

      if (!crcok) {
        // wenn beim validieren ein fehler auftrat, nach neuen daten fragen
        StringBuffer sb = new StringBuffer(blz).append("|").append(number);
        HBCIUtilsInternal.getCallback()
            .callback(
                getMainPassport(),
                HBCICallback.HAVE_CRC_ERROR,
                HBCIUtilsInternal.getLocMsg("CALLB_HAVE_CRC_ERROR"),
                HBCICallback.TYPE_TEXT,
                sb);

        int idx = sb.indexOf("|");
        blz = sb.substring(0, idx);
        number = sb.substring(idx + 1);
      }

      if (blz.equals(old_blz) && number.equals(old_number)) {
        // blz und kontonummer auch nach rueckfrage unveraendert,
        // also tatsaechlich mit diesen daten weiterarbeiten
        break;
      }
    }

    if (!blz.equals(orig_blz)) {
      setParam(frontendname + ".KIK.blz", blz);
    }
    if (!number.equals(orig_number)) {
      setParam(frontendname + ".number", number);
    }
  }
예제 #2
0
  private void _checkIBANCRC(String frontendname, String iban) {
    // pruefsummenberechnung nur wenn iban vorhanden ist
    if (iban == null || iban.length() == 0) {
      return;
    }

    // daten merken, die im urspruenglich verwendet wurden (um spaeter
    // zu wissen, ob sie korrigiert wurden)
    String orig_iban = iban;
    while (true) {
      boolean crcok = HBCIUtils.checkIBANCRC(iban);

      String old_iban = iban;

      if (!crcok) {
        StringBuffer sb = new StringBuffer(iban);
        HBCIUtilsInternal.getCallback()
            .callback(
                getMainPassport(),
                HBCICallback.HAVE_IBAN_ERROR,
                HBCIUtilsInternal.getLocMsg("CALLB_HAVE_IBAN_ERROR"),
                HBCICallback.TYPE_TEXT,
                sb);

        iban = sb.toString();
      }

      if (iban.equals(old_iban)) {
        // iban unveraendert
        break;
      }
    }

    if (!iban.equals(orig_iban)) {
      setParam(frontendname + ".iban", iban);
    }
  }