Nuclet zur Anbindung an die cKonto-Schnittstelle
Name: | cKonto |
---|---|
Package: | org.nuclet.ckonto |
Namensraum: | CKT |
Version: | 1.0.0 |
Datum: | 13.03.2013 |
Überblick
Kurzbeschreibung
Das cKonto-Nuclet bietet die Möglichkeit Bankverbindungen über die cKonto-Schnittstelle auf Validität zu prüfen.
Hinweis: Für die Nutzung der cKonto-Schnittstelle benötigen Sie einen kosfenpflichtigen Account bei der NetSlave GmbH. Weitere Informationen finden Sie unter www.ckonto.de.
Nuclet-Bestandteile
Das cKonto-Nuclet umfasst ein Java-Package mit drei Java-Klassen.
Java-Package-Struktur
Java-Package | Java-Klasse | Kurzbeschreibung |
org.nuclet.ckonto | CkontoCheck | Container-Klasse zur Verarbeitung des cKonto-XMLs |
| CkontoConstants | Konstanten zur Interpretation der Schnittstellenrückgabewerte |
| CkontoUtils | Utility-Klasse mit Validierungsmethoden |
Tabelle 1: Java-Package-Struktur
Integration
Notwendige Schritte zur Integration
Die Integration des cKonto-Nuclets erfolgt in 5 Schritten:
Download
Nuclet-Import
Konfiguration der Systemparaemter (entfällt bis auf weiteres)
Sourcecode-Anpassungen in Java-Regeln des cKonto-Nuclets
Sourcecode-Anpassungen in eigenen Regeln
Alle Integrationschritte werden im folgenden im Detail erläutert.
Schritt 1: Download
Download der .nuclet-Datei „cKonto-v1.0.0.nuclet“ auf der Nuclos-Webpage unter „Nuclos Services“ > „Download“ > „Nuclet Download“.
Schritt 2: Nuclet-Import
Import des cKonto-Nuclets unter „Konfiguration“ > „Nuclet Management“ > „Importieren“ in Ihre bestehende Nuclos-Instanz, Auswahl der Datei „cKonto-v1.0.0.nuclet“
Schritt 3: Konfiguration der System-Parameter
Die Einrichtung der verwendeten Nuclos-Systemparameter über „Administration“ > „Parameter“.
Parameter | Kurzbeschreibung |
---|---|
CKONTO_CHECK | Kennzeichnung, ob eine Kontoprüfung über die cKonto-Schnittstelle erfolgen soll |
CKONTO_KEY | Registrierungsschlüssel |
Tabelle 3: System-Parameter
Anmerkung: Dieser Schritt wird erst in einer zukünfigen Version notwendig, d.h. sobald die neue Nuclos-API das Auslesen von System-Parametern unterstützt. Solange dies nicht der Fall ist, erfolgt die Konfiguration in Schritt 8, durch Anpassung von entsprechenden Konstanten im Java-Code.
Schritt 4: Sourcecode-Anpassungen in den Java-Regeln des cKonto-Nuclets
Java-Package | Java-Klasse | Kurzbeschreibung |
---|---|---|
org.nuclet.ckonto | CkontoUtils | Konfiguration der zwei Konstanten CKONTO_CHECK und CKONTO_KEY |
Tabelle 4: Anwendungsspezifische Anpassungen in Java-Regeln
CkontoUtils
Es ist notwendig, die beiden Konstanten CKONTO_CHECK und CKONTO_KEY für den eigenen Anwendungszweck zu konfigurieren:
CKONTO_CHECK: legt fest, ob eine Kontoprüfung über die cKonto-Schnittstelle erfolgen soll
CKONTO_KEY: definiert den Authentifizierungsschlüssel für die cKonto-Schnittstelle; der Default-Wert für Testzwecke ist „demo“
public class CkontoUtils { private static final String CKONTO_KEY = "demo"; // Authentifizierungsschlüssel private static final String CKONTO_CHECK = "Y"; // Soll eine Kontovalidierung durchgeführt werden? (...) }
Achtung: Die Validierungsmethoden validiereIBAN() und validiereKontoverbindung() der Klasse CkontoUtils validieren die übergebenen Parameter immer, unabhängig vom Wert der Konstanten CKONTO_CHECK. Zur Abfrage, ob eine Validierung tatsächlich erfolgen soll, dient die Methode istKontovalidierungAktiviert() in der selben Klasse.
Anmerkung: Dieser Schritt wird in einer zukünfigen Version entfallen, d.h. sobald die neue Nuclos-API das Auslesen von System-Parametern unterstützt. Sobald dies der Fall ist, wird diese Anpasung über Schritt 7 geregelt (s.o.).
Schritt 5: Sourcecode-Anpassungen in eigenen Regeln
Soll die Validierung von Bankverbindungen über die cKonto-Schnittstelle eingebunden werden, so erfolgt dies über den Aufruf einer der zwei folgenden Methoden der Klasse CkontoUtils:
validiereIBAN(): führt eine Validierung einer IBAN durch
validiereKontoverbindung(): führt eine Valdieriung von Kontonummer und Bankleitzahl durch
Das nun folgende Beispiel dient der Veranschaulichung dieser Einbindung.
(...) org.nuclet.ckonto.CkontoCheck check = null; org.nuclet.ckonto.CkontoConstants.Status status = null; try { // Übergabe einer Kontonummer und einer Bankleitzahl an die cKonto-Validierung... check = org.nuclet.ckonto.CkontoUtils.validiereKontoverbindung(strKontonummer, strBankleitzahl); } catch (javax.xml.bind.JAXBException jaxbe) { // eigene Fehlerbehandlung einsetzen // (...) } catch (java.net.MalformedURLException me) { // eigene Fehlerbehandlung einsetzen // (...) } status = org.nuclet.ckonto.CkontoConstants.Status.valueOf("STATUS_" + Check.getStatus().toString()); if (!org.nuclet.ckonto.CkontoConstants.Status.STATUS_1.equals(status)) { // eigener Code, zur Verarbeitung der Status-Informationen // (...) } (...)
Die Enumeration-Klasse CkontoConstants umfasst alle möglichen Rückgabewerte der cKonto-Schnittstelle, so dass eine einfache Einordnung über den Enumeration-Vergleich möglich ist.
public class CkontoConstants { public enum Status { STATUS_0(0, "Die Kontonummer ist ungültig, sie kann von diesem Institut nicht vergeben werden."), STATUS_1(1, "Die Kontonummer ist gültig, sie kann von diesem Institut vergeben werden."), STATUS_2(2, "Fehler bei der Eingabe der Bankleitzahl. Sie ist entweder nicht 8-stellig oder enthält Buchstaben."), STATUS_3(3, "Fehler bei der Eingabe der Kontonummer. Sie ist entweder zu lang oder enthält Buchstaben."), STATUS_4(4, "Eingabefehler bei der Kontonummer und Bankleitzahl (siehe 2 und 3) oder der IBAN."), STATUS_5(5, "Genereller Eingabefehler des Übergabeparameters - enthält evtl. Leerzeichen."), STATUS_6(6, "Fehler im Format des Übergabeparameters."), STATUS_7(7, "Die Bankleitzahl wurde in der Datenbank nicht gefunden (existiert nicht)."), STATUS_8(8, "Die von der Bank verwendete Prüfmethode ist im Demonstrations-Modus nicht verfügbar."), STATUS_9(9, "Die Kontonummer kann nicht geprüft werden, da die Bank entweder keine Prüfziffern verwendet oder es sich um eine spezielle Kontonummer handelt."); (...) }
Soll zusätzlich die Möglichkeit genutzt werden, die Validierung (temporär) zu deaktivieren, dann empfielt es sich, den Validierungsaufruf mit einem Aufruf der Methode istKontovalidierungAktiviert() zu kombinieren.
(...) if (org.nuclet.ckonto.CkontoUtils.istKontovalidierungAktiviert()) { // Führe Valdierung durch, wie im Beispiel zum Validierungaufruf beschrieben // (...) } (...)
Die Validierung lässt sich auf diese Weise einfach über die Konstante CKONTO_CHECK (und später über den entsprechenden System-Parameter, s.o.) an- und ausschalten.