KONTOPRUEF-Navigation:
Kundencenter
KONTOPRUEF allgemein:
KONTOPRUEF-ONLINE:
KONTOPRUEF-INHOUSE ("HanftServer"):
KONTOPRUEF-OFFLINE:
Tools und Demos:
Impressum
Datenschutz
|
HanftWddx ist ein kostenloser COM-Server für Windows,
der die Kommunikation mit dem Prüfserver durchführt und der
aus fast allen Programmiersprachen/-Skripten heraus aufgerufen werden
kann. Daneben ist eine ganz normale Benutzeroberfläche für
Handeingabe enthalten. Sie können die Software hier herunterladen:
- Installation:
Rufen Sie HanftWddx.exe (mit Administratorrechten) einfach auf. Sie erhalten
dann eine Windows-Oberfläche für eine Handeingabe der zu prüfenden
Daten; gleichzeitig hat sich jedoch der COM-Server in Windows installiert. Wenn
Sie den COM-Server "lautlos" installieren möchten (ohne Erscheinen der
Benutzeroberfläche), können Sie HanftWddx /regserver aufrufen.
- Deinstallation:
Rufen Sie HanftWddx /unregserver (mit Administratorrechten) auf und
löschen Sie danach die Datei HanftWddx.exe.
Hinweis: Im Registry-Zweig HKEY_CURRENT_USER\Software\Hanft\HanftWddx bleiben
Ihre Einstellungen (Benutzername, Kennwort, Proxy-Server etc.) für eine
ggf. spätere Verwendung erhalten. Falls Sie das nicht möchten, müssen
Sie diesen Registry-Zweig manuell per regedit entfernen.
Wie Sie den COM-Server benutzen können, finden Sie in den einzelnen
Abschnitten unter Software-Integration (siehe Inhaltsverzeichnis links).
Vorab ein wichtiger Hinweis: Wann immer Ihre Software den COM-Server benutzt,
wird in der Windows-Prozeßliste das Programm HanftWddx.exe gestartet.
Dieser Programmstart dauert etliche Millisekunden und kann Serienprüfungen
merklich verzögern. Sie sollten daher Ihre Software dahingehend programmieren,
daß der COM-Server möglichst nur ein einziges Mal instantiiert (=gestartet)
wird (also nur einmal CreateObject o.ä. aufrufen) und dann mit
den diversen Prüfroutinen wie z.B. TestBlzKto diesen ein(zig)en
gestarteten COM-Server verwenden.
Für eine genaue Beschreibung der Parameter- und der Ergebnisfelder
sehen Sie bitte auf der Seite der Bankverbindungsprüfung
bzw. der Adreßprüfung nach. Die genauen
Definitionen der in HanftWddx enthaltenen Felder und Funktionen
finden Sie hier:
- Gemeinsame Felder und Funktionen bei allen HanftWddx-Objekten
- Bankverbindungsprüfung
- Adreßprüfung
- USt-ID-Prüfung
-
Sub SetProxy(Host as String, Port as Integer,
User as String, Pass as String)
ist eine Prozedur, die den angegebenen Proxy-Server für alle
folgenden Abfragen setzt (muß nur aufgerufen werden, falls ein
Proxy-Server verwendet werden soll; ansonsten - oder mit leeren Parametern -
wird eine direkte Verbindung hergestellt). User und Pass
müssen nur in den seltenen Fällen angegeben werden, in denen
Ihr Proxy-Server eine Authentifizierung verlangt, ansonsten können
Sie diese Parameter einfach weg- oder leerlassen.
-
Property SSLMode as Integer
gibt ab, ob und wie SSL (Secure Socket Layer) bei der Übertragung
verwendet werden soll:
-
0: Keine SSL-Übertragung (Voreinstellung)
Alle Daten werden unverschlüsselt übertragen.
-
1: Verschlüsselte SSL-Übertragung mit Zertifikatsprüfung
SSL wird verwendet, und alle Zertifikate werden geprüft (d.h. Sie haben
die Gewißheit, wirklich mit wddx.hanft.de verbunden zu sein
und daß die gesamte Kette von Ihrem Rechner bis zum Prüfserver gesichert ist).
Falls irgendeines
der verwendeten Zertifikate nicht in Ordnung ist, wird das Ergebnis Result
durch den Wert -250 (ERROR_CERTIFICATE) ersetzt, mit der Bedeutung:
Das Serverzertifikat von
wddx.hanft.de kann nicht geprüft werden. Den genauen
Grund finden Sie im Antwortfeld resulttext. In der Regel
liegt dieses Problem daran, daß in
Ihrer Windows-Version das Zertifikat des Unterzeichners noch
nicht installiert ist. Führen Sie ein Windows-Update durch und
kreuzen Sie dort insbesondere das "Stammzertifikatupdate" an
(möglicherweise wird es Ihnen nicht bei den "wichtigen", sondern
bei den "optionalen" Updates angeboten).
Falls Sie Ihre Windows-Version nicht updaten wollen, können Sie
auch SSLMode=2 setzen; dann wird
immer noch verschlüsselt übertragen, es wird jedoch nicht
geprüft, ob es sich beim Server wirklich um wddx.hanft.de
handelt (s.u.).
-
2: Verschlüsselte SSL-Übertragung ohne Zertifikatsprüfung
SSL wird verwendet (d.h. die Übertragung findet verschlüsselt statt);
es werden jedoch keine Zertifikate geprüft.
-
Property Timeout as Integer
gibt die Millisekunden an, wie lange auf eine Server-Antwort gewartet
werden soll.
Nach oben
- Sub TestBlzKto(User, Pass, Blz, Kto, Land as String, ID as Integer, Name as String)
ist eine Prozedur, die die angegebene Bankverbindung auf Gültigkeit
prüft. Der Parameter
Land steht erst ab Version 2.8.0 zur Verfügung! Bitte
übergeben Sie immer Land="DE", ID=0 und Name="" (Leerstring) (für zukünftige
Erweiterungen vorgesehen).
- Sub TestIban(User, Pass, Iban as String, ID as Integer, Name as String)
ist eine Prozedur, die die angegebene IBAN auf Gültigkeit
prüft. Diese Funktion
steht erst ab Version 3.1.0 zur Verfügung! Bitte
übergeben Sie immer ID=0 und Name="" (Leerstring) (für zukünftige
Erweiterungen vorgesehen).
- Sub TestIbanBic(User, Pass, Iban as String, Bic as String, ID as Integer, Name as String)
ist eine Prozedur, die die angegebene IBAN und den angegebenen BIC auf Gültigkeit
prüft. Diese Funktion
steht erst ab Version 3.2.0 zur Verfügung! Bitte
übergeben Sie immer ID=0 und Name="" (Leerstring) (für zukünftige
Erweiterungen vorgesehen).
- Sub TestBic(User, Pass, Bic as String)
ist eine Prozedur, die den angegebenen BIC auf Gültigkeit
prüft. Diese Funktion
steht erst ab Version 3.2.0 zur Verfügung!
- Sub TestCc(User, Pass, Cc as String)
ist eine Prozedur, die die angegebene Kreditkartennummer auf Gültigkeit
prüft.
- Sub Search(User, Pass, SearchString as String, Land as String, Fragments as Integer)
ist eine Prozedur, die Banken sucht, auf die der angegebene Suchbegriff
paßt. Es können (durch Zwischenräume getrennt) auch mehrere
Suchbegriffe eingegeben werden, die dann automatisch UND-verknüpft werden.
Ist Fragments=0, so wird nur nach ganzen Wörtern gesucht; mit
Fragments=1 wird auch nach Wortteilen gesucht.
Der Parameter Land steht erst ab Version 2.8.0 zur
Verfügung; bitte geben Sie hier immer "DE" an.
- Property Result as Integer
liefert den Fehlercode der letzten Prüfung.
- Property Resulttext as String
liefert das Ergebnis der letzten Prüfung als lesbaren Text.
- Property BankName as String
liefert den Banknamen der letzten Prüfung (falls die angegebene
Bank existiert).
- Property NewBlz as String
liefert ggf. die Nachfolge-Bankleitzahl (falls bekannt), nach
folgenden Regeln:
- Bei gültigen Bankleitzahlen (Result>=0):
- Feld ist leer: Normale gültige Bankleitzahl
- Feld ist 00000000: Bankleitzahl wird demnächst ungültig;
Nachfolge-Bankleitzahl ist nicht bekannt
- Feld ist xxxxxxxx: Bankleitzahl wird demnächst ungültig;
Nachfolge-Bankleitzahl ist xxxxxxxx
- Bei ungültigen Bankleitzahlen (Result=-1):
- Feld ist leer: Bankleitzahl ist völlig unbekannt
- Feld ist 00000000: Bankleitzahl wurde vor kurzem ungültig;
Nachfolge-Bankleitzahl ist nicht bekannt
- Feld ist xxxxxxxx: Bankleitzahl wurde vor kurzem ungültig;
Nachfolge-Bankleitzahl ist xxxxxxxx
- Property Iban as String
liefert die IBAN der letzten Prüfung (falls die angegebene
Bankverbindung in Ordnung ist).
- Property Bic as String
liefert den BIC der letzten Prüfung (falls die angegebene
Bankverbindung in Ordnung ist und ein BIC ermittelt werden konnte).
- Property Banken as Array of String
liefert nach einer Bankensuche die gefundenen Banken im Format
"Bankleitzahl|Bankname" zurück, wobei im ersten Element (Index 0)
die Anzahl der folgenden Banken enthalten ist.
- Property BankenString as String
liefert nach einer Bankensuche die gefundenen Banken in einem
einzigen String zurück, getrennt mit Tilde ("~"). Das erste Feld
in diesem String gibt die Anzahl der folgenden Banken an.
- Property BicName as String
liefert nach einer BIC-Prüfung (mit TestIbanBic oder
TestBic) den zum angegebenen BIC ermittelten
Banknamen. Ist dieses Feld leer, wurde der angegebene BIC nicht im
SCL-Directory gefunden (d.h. möglicherweise existiert der BIC
zwar irgendwo auf der Welt, ist aber nicht "SEPA-connected").
Beginnt dieses Feld mit einem Stern "*", ist die
Abfrage gescheitert; nach dem Stern "*" ist die zugehörige
Fehlermeldung angegeben.
- Property BicSct as Integer
gibt nach einer BIC-Prüfung an, ob diese Bank für
ankommende SEPA-Überweisungen ("Credit Transfer")
erreichbar ist.
- Property BicSdd as Integer
gibt nach einer BIC-Prüfung an, ob diese Bank für
ankommende SEPA-Basis-Lastschriften ("Core Direct Debit")
erreichbar ist.
- Property BicB2b as Integer
gibt nach einer BIC-Prüfung an, ob diese Bank für
ankommende SEPA-Firmen-Lastschriften ("Business to Business")
erreichbar ist.
Obiges ist eine symbolische Schreibweise; in ASP, MS-Access
oder Visual Basic etc. sieht der tatsächliche Aufruf
ungefähr wie folgt aus:
Dim KtoPruef as Variant
Set KtoPruef = CreateObject("HanftWddx.KtoPruef")
KtoPruef.SetProxy("mein.proxy.de", 3128) ' nur falls benötigt
KtoPruef.SSLMode = 1 ' nur falls gewünscht
KtoPruef.TestBlzKto("Benutzername","Kennwort","Bankleitzahl","Kontonummer", "DE", 0, "")
ErgebnisAlsZahl = KtoPruef.Result
ErgebnisAlsText = KtoPruef.Resulttext
ErgebnisBankName = KtoPruef.BankName
Nach oben
-
Property Rewrite as Integer
erkennt, wenn gesetzt, auch Orte in falscher Schreibweise als
gültig, d.h. z.B. nicht nur "Nürnberg", sondern auch "nürnberg",
"Nuernberg", "nuernberg" oder gar "nuern-berg". Der postalisch korrekte
Ortsname wird dann im Feld Rewritten (s.u.) zurückgeliefert.
Bei Rewrite=0 (Voreinstellung) muß der Ortsname exakt passend
übergeben werden (also mit richtiger Groß- und Kleinschreibung,
Umlauten etc.), damit er als gültig erkannt wird – ansonsten
wird Result=4 ("Postleitzahl gilt nur für andere Orte") zurückgeliefert.
Insgesamt gibt es folgende Möglichkeiten für Rewrite:
- Es werden nur die "kurzen" Ortsnamen (wie z.B. "Rothenburg") als
gültig akzeptiert, und Groß- und Kleinschreibung und
Umlaute müssen ebenfalls 100% stimmen.
- Groß- und Kleinschreibung und Umlaute sind egal; es wird
aber trotzdem nur der "kurze" Ortsname akzeptiert; der "schöne"
(kurze!) Ortsname wird im Feld "Rewritten" zurückgegeben (also hin:
"ro-then/BURG", zurück: "Rothenburg")
- wie 1, aber zusätzlich wird nun auch der lange Ortsname
(ebenfalls in "unschöner" Schreibweise) akzeptiert
(also z.B. "ROTHEN/burg,ob'der'TauBER"); das Feld "Rewritten"
liefert stets den "kurzen" Ortsnamen zurück ("Rothenburg"),
egal, ob der Kunde den kurzen oder langen Namen eingegeben
hat
- wie 2, es wird aber immer der "lange" Ortsname im Feld "Rewritten"
zurückgegeben ("Rothenburg ob der Tauber"), egal, ob der Kunde
den kurzen oder langen Namen eingegeben hat.
Wer also die Varianten Rewrite=2 oder Rewrite=3 nutzt,
hat in jedem Fall die Gewißheit, daß "kurze" und "lange" Ortsnamen
gleichermaßen akzeptiert werden. Mit der Unterscheidung 2 oder 3
kann man sich dann noch aussuchen, ob man z.B. seine Kundendatenbank
einheitlich mit den "kurzen" oder "langen" Namen aufbauen will.
- Sub Check(User, Pass, Plz, Ort as String)
ist eine Prozedur, die die angegebene Plz-/Ort-Kombination auf Gültigkeit
prüft.
- Sub CheckStr(User, Pass, Plz, Ort, Str as String)
ist eine Prozedur, die die angegebene Plz-/Ort-/Straße-Kombination
auf Gültigkeit prüft.
- Sub CheckStrHnr(User, Pass, Plz, Ort, Str, Hnr as String)
ist eine Prozedur, die die angegebene Plz-/Ort-/Straße-/Hausnummer-Kombination
auf Gültigkeit prüft.
- Sub CheckPof(User, Pass, Plz, Ort, Pof as String)
ist eine Prozedur, die die angegebene Plz-/Ort-/Postfach-Kombination
auf Gültigkeit prüft.
- Sub GetPlzType(User, Pass, Plz as String)
ist eine Prozedur, die in die Ergebnisfelder den Typ der angegebenen
Postleitzahl schreibt.
- Property Result as Integer
liefert den Fehlercode der letzten Prüfung.
- Property Resulttext as String
liefert das Ergebnis der letzten Prüfung als lesbaren Text.
- Property Rewritten as String
liefert, falls Rewrite=1 (s.o.) und die Postleitzahl-/Ort-Kombination
in Ordnung ist, den Ortsnamen in der postalisch gültigen Form
zurück (d.h. mit Umlauten, Groß-/Kleinschreibung etc.).
- Property Str46 as String
liefert, falls eine Straße geprüft und gefunden wurde, den
(maximal 46 Zeichen langen)
Straßennamen in der postalisch gültigen Form
zurück (d.h. mit Umlauten, Groß-/Kleinschreibung etc.)
– stets in der Form "...str.". Falls Sie also Ihre Kundendatenbanken
lieber mit "...straße" füllen möchten, müssen Sie
vor dem Abspeichern noch "str." in "straße" konvertieren.
- Property Str22 as String
liefert, falls eine Straße geprüft und gefunden wurde, den
(ggf. abgekürzten, maximal 22 Zeichen langen)
Straßennamen in der postalisch gültigen Form
zurück (d.h. mit Umlauten, Groß-/Kleinschreibung etc.)
– stets in der Form "...str.". Falls Sie also Ihre Kundendatenbanken
lieber mit "...straße" füllen möchten, müssen Sie
vor dem Abspeichern noch "str." in "straße" konvertieren.
- Property Ortsteil as String
liefert den Ortsteil zur angegebenen Adresse, falls er eindeutig
ermittelt werden kann.
- Property PlzOut as String
liefert die korrekte Postleitzahl zur angegebenen Adresse, falls sie eindeutig
ermittelt werden kann.
- Property Orte as Array of String
liefert, falls Result=4 ist, die "passenden" Ortsnamen zur angegebenen
Postleitzahl der letzten Prüfung in einem Array, wobei im ersten
Element (Index 0) die Anzahl der folgenden Orte enthalten ist.
- Property OrteString as String
liefert, falls Result=4 ist, die "passenden" Ortsnamen zur angegebenen
Postleitzahl der letzten Prüfung in einem einzigen String,
getrennt mit Tilde ("~"). Das erste Feld in diesem String gibt
die Anzahl der folgenden Orte an. Der String kann also z.B. wie
folgt aussehen:- 0
- 1~Nürnberg
- 2~Erlangen~Buckenhof
- 3~Schwabach~Rednitzhembach~Kammerstein
- usw.
- Property AlteOrte as Array of String
liefert, falls Result=4 ist, die ehemaligen und aktuellen Ortsnamen zur
angegebenen Postleitzahl der letzten Prüfung in einem Array, wobei im ersten
Element (Index 0) die Anzahl der folgenden Orte enthalten ist. Ein
Eintrag hat die Form "±|Ehemaliger Ortsname|Aktueller Ortsname",
wobei in der ersten Spalte "+" steht, wenn eine Übereinstimmung
mit dem abgefragten Ortsnamen erkannt wurde, ansonsten "-".
- Property AlteOrteString as String
liefert, falls Result=4 ist, die ehemaligen und aktuellen Ortsnamen zur angegebenen
Postleitzahl der letzten Prüfung wie oben, jedoch in einem einzigen String,
getrennt mit Tilde ("~"). Das erste Feld in diesem String gibt
die Anzahl der folgenden Einträge an. Der String kann also z.B. wie
folgt aussehen:- 0
- 1~+|Almoshof|Nürnberg
- 2~-|Büchenbach|Erlangen~-|Tennenlohe|Buckenhof
- usw.
Obiges ist eine symbolische Schreibweise; in ASP, MS-Access
oder Visual Basic etc. sieht der tatsächliche Aufruf
ungefähr wie folgt aus:
Dim myAddress as Variant
Set myAddress = CreateObject("HanftWddx.Address")
myAddress.SetProxy("mein.proxy.de", 3128) ' nur falls benötigt
myAddress.SSLMode = 1 ' nur falls gewünscht
myAddress.Check("Benutzername","Kennwort","Postleitzahl","Ortsname")
ErgebnisAlsZahl = myAddress.Result
ErgebnisAlsText = myAddress.Resulttext
if ErgebnisAlsZahl = 4 then ' Ortsliste übernehmen (Anzahl in .Orte[0])
i = 1
while myAddress.Orte[i] <> "" ' noch ein Ort
ErgebnisOrte[i] = myAddress.Orte[i]
i = i + 1
wend
endif
Nach oben
-
Sub Check(aUStID as String)
ist eine Prozedur, die die angegebene USt-ID auf Gültigkeit
prüft.
-
Property Result as Integer
liefert den Fehlercode der letzten Prüfung wie folgt:
-
0: USt-ID ist in Ordnung.
-
1: USt-ID existiert nicht.
-
2: Fehler bei der Prüfung (z.B. Server
nicht erreichbar, aber auch bei unsinnigen USt-IDs wie "XXYYZZTT")
-
Property Resulttext as String
liefert bei Result=0 oder 1 alle Ergebnisfelder der Server-Antwort im Format
countryCode~vatNumber~requestDate~valid~name~address
und bei Result=2 eine Klartextfehlermeldung des Betriebssystems oder
des Servers (je nach Fehlerort).
- In der Server-Antwort sind zwar die Felder name und
address vorgesehen, um den Inhaber der USt-ID anzuzeigen; diese werden
jedoch zumindest für deutsche USt-IDs aus Datenschutzgründen vom Server
leider nicht ausgefüllt; bei manchen ausländischen IDs (z.B. aus Österreich
oder Polen) finden Sie hier Name und Adresse der geprüften Firma. Falls Sie
die eingebaute HanftWddx-Benutzeroberfläche benutzen, erscheint bei
Vorhandensein dieser Daten ein "Info"-Button, mit dem Sie diese Angaben anzeigen
können.
Hinweis: Die Prüfung findet direkt auf dem Server der
Europäischen Kommission statt und ist von KONTOPRUEF
vollkommen unabhängig!
Nach oben
|