2013-12-04 2 views
4

В моем приложении для Android я пытаюсь проверить, действителен ли номер банковского счета IBAN. Это можно сделать, используя Apache IBANCheckDigit. Теперь я пытаюсь сделать это следующим образом:Как проверить номер 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? Любые советы приветствуются!

ответ

5

Чтобы проверить контрольные цифры IBAN действительны вы должны использовать метод isValid только:

Boolean b = a.isValid("MY_IBAN_NUMBER_HERE"); 
Log.e("isValid: ", b.toString()); 

Метод calculate будет вычислять контрольные цифры, если вы не знаете их уже.

+0

Как глупо меня. Большое спасибо! – kramer65

2

iban4j может быть хорошим выбором для IBAN проверки, который проверяющий не только контрольная цифра, но и длину 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> 
Смежные вопросы