Как проверить номер IBAN с помощью Apache IBANCheckDigit?
В своем приложении для Android я пытаюсь проверить, действителен ли номер банковского счета IBAN. Предположительно, это можно сделать с помощью Apache IBANCheckDigit. Я сейчас попробую сделать так:
IBANCheckDigit a = new IBANCheckDigit();
try {
String checkDigit = a.calculate("MY_IBAN_NUMBER_HERE");
Boolean b = a.isValid(checkDigit);
Log.e("isValid: ", b.toString());
} catch (CheckDigitException e) {
Log.e(this, "THIS IS AN ERROR");
}
Это однако, всегда печатает false
, Даже если я введу свой собственный (правильный) номер IBAN, он также даст false
,
Кто-нибудь знает, как использовать этот Apache IBANCheckDigit? Любые советы приветствуются!
2 ответа
Чтобы проверить правильность контрольных цифр IBAN, вы должны использовать isValid
только метод:
Boolean b = a.isValid("MY_IBAN_NUMBER_HERE");
Log.e("isValid: ", b.toString());
calculate
Метод вычислит контрольные цифры, если вы их еще не знаете.
iban4j может быть хорошим выбором для проверки IBAN, которая проверяет не только контрольную цифру, но также длину, структуру, типы символов и т. д....
домашняя страница: https://github.com/arturmkrtchyan/iban4j
Пример кода:
try {
IbanUtil.validate("AT611904300234573201");
// valid
} catch (IbanFormatException e) {
// invalid
}
Maven зависимость:
<dependency>
<groupId>org.iban4j</groupId>
<artifactId>iban4j</artifactId>
<version>1.0.0</version>
</dependency>