Hi stefrohn01,
Banken generieren Kontonummern nach Berechnungsmethoden.
Heißt z.B., eine Kontonummer besteht aus 10 Ziffern, die letzte Ziffer ist eine Prüfsumme.
Diese Prüfsumme wird/kann mit versch. Verfahren errechnet (werden), wobei jede Bank ihr eigenes Verfahren benutzt.
Dabei wird eine Berechnungsmethode gewählt, z.B. MODULO 10, und eine Gewichtung.
Dazu mehr unter http://www.bundesbank.de/download/za...v_pz200909.pdf
Die Bankleitzahlen unterliegen einem ähnlichem Kontext.
Hier: Deutsche Bundesbank - Browser-Empfehlung
Gruß
Günni
Kontocheck via BAV ... einbauen.
Einklappen
X
-
Hi stefrohn01,
Banken generieren Kontonummern nach Berechnungsmethoden.
Heißt z.B., eine Kontonummer besteht aus 10 Ziffern, die letzte Ziffer ist eine Prüfsumme.
Diese Prüfsumme wird/kann mit versch. Verfahren errechnet (werden), wobei jede Bank ihr eigenes Verfahren benutzt.
Dabei wird eine Berechnungsmethode gewählt, z.B. MODULO 10, und eine Gewichtung.
Dazu mehr unter http://www.bundesbank.de/download/za...v_pz200909.pdf
Die Bankleitzahlen unterliegen einem ähnlichem Kontext.
Hier: Deutsche Bundesbank - Browser-Empfehlung
Gruß
Günni
Einen Kommentar schreiben:
-
Die Datei ist nach Bankleitzahlen sortiert. Um eine BLZ zu verifizieren, genügt bei Datensätzen gleicher Bytegröße binäre Suche. Für (derzeit) 19575 Einträge benötigt die maximal 15 Lesezugriffe, mit bspw. fseek() und fread(), (2 ^15 = 32768 > 19575). Schneller durchkämmt auch eine Datenbank ihren Index nicht.Zitat von Kropff Beitrag anzeigenIch habe mir mal eben die txt- und xslx-Datei angeschaut. Mein Tipp, nimm die Excel-Datei und speicher sie als .csv ab. Dann kanst du die problemlos mit den entsprechenden PHP-Funktionen in eine Datenbank einlesen. Das txt-File ist nicht zu gebrauchen, da die Anordnung nicht sauber ist und du mit regulären Ausdrücken jedesmal die komplette Datei durchlaufen müsstest.
Was soll das bringen? Du könntest allenfalls Zuordnungsprobleme der Paarung Bankleitzahl (oder IBAN) und "Name der Bank" aufspüren. Letzteres ist aber auch problematisch. Meine lokale Sparkasse hat sich kürzlich mit ein paar Nachbarsparkassen zusammengeschlossen. Sie firmieren derzeit sowohl unter ihren alten Namen als auch unter dem neuen Verbund-Namen. Natürlich gibts auch eine neue gemeinsame Bankleitzahl und die alten bleiben noch eine Weile bestehen. Dummerweise kennt die aktuelle BLZ-Datei von zwar die alten BLZ und Filialnamen, von den neuen aber nur eingeschränkt (obwohl diese schon ein paar Monate gültig sind). Meine Spaßkasse akzeptiert sowohl neue als auch alte BLZ und Filialnamen -- ein von der BLZ-Datei gesteuertes PHP-Script aber nicht. Das dürfte zur Verwirrung beim (zahlungswilligen) Kunden führen.Zitat von stefrohn01 Beitrag anzeigenHi @all,
ich möchte überprüfen lassen, ob die eingegebene Kontonummer und die dazugehörige Bankleitzahl theoretisch möglich wären, um unnötige fehleingaben / zahlendreher abzustellen.
Ich verstehe nicht, was eine Prüfung auf die BLZ überhaupt bringen soll. Absichtliche Falscheingaben kann man damit nicht erkennen. Und ob man von einem Konto überhaupt etwas abbuchen kann, muss man anders ermitteln. Dazu benötigt man Zugriff auf eine entsprechende Abfrage-Schnittstelle von Zahlungsdienstleistern oder Banken. Vermutlich wird der weder kostenlos noch ohne vorherige Registrierung zu haben sein.
(Alle) Kontonummern kennt die Bundesbank-Datei nicht. Das wären wohl auch etwas zu viel. Und wer von einem Konto abbuchen kann (oder ob das überhaupt möglich ist), bestimmt die Bank und manchmal auch der Kontoinhaber. Mein DiBA-Extrakonto hat sowohl eine gültige BLZ als auch Kontonummer. Trotzdem darfst du (oder dein Brötchengeber) davon nichts abbuchen.Nun möchte ich eben die zwei Felder ( BLZ / Kontonummer ) so belegen das nicht geschaut wird ob etwas drin steht sondern eben geschaut wird das die eingegebenen Daten entsprechend der BundesbankFile auch möglich sind.
Gleiches gilt für "Sparbücher", Pfändungsichere Konten u.s.w.
Zuletzt geändert von fireweasel; 14.04.2012, 12:26.
Einen Kommentar schreiben:
-
So in der Art meinte ich es eigentlich. Das „live“ war wohl etwas übertrieben.Zitat von Kropff Beitrag anzeigenNotfalls lässt man Nachts einen cronjob laufen, der sich die aktuellen Daten holt.
Einen Kommentar schreiben:
-
OK, das mit dem substr stimmt, auch wenn es auf den ersten Blick etwas seltsam aussah (nicht substr, sondern die txt-Datei). Aber jedes mal (fast) die komplette Datei bei einem Request zu durchlaufen, ist imho nicht sehr performant. Vor allem bei vielen Zugriffen. Und wie oft ändert sich da was. Notfalls lässt man Nachts einen cronjob laufen, der sich die aktuellen Daten holt.Zitat von AmicaNoctis Beitrag anzeigenich sehen das anders. Die Textdatei ist eine Festbreitentabelle und kann mit substr() zerlegt werden. Dadurch könnte man live auf die Datei zugreifen, ohne sich Gedanken darüber machen zu müssen, ob sie noch aktuell ist und wenn nicht, sie wieder von Hand mit Excel befummeln zu müssen.
Peter
Einen Kommentar schreiben:
-
Hallo,
ich sehen das anders. Die Textdatei ist eine Festbreitentabelle und kann mit substr() zerlegt werden. Dadurch könnte man live auf die Datei zugreifen, ohne sich Gedanken darüber machen zu müssen, ob sie noch aktuell ist und wenn nicht, sie wieder von Hand mit Excel befummeln zu müssen.
Gruß,
Amica
Einen Kommentar schreiben:
-
Ich habe mir mal eben die txt- und xslx-Datei angeschaut. Mein Tipp, nimm die Excel-Datei und speicher sie als .csv ab. Dann kanst du die problemlos mit den entsprechenden PHP-Funktionen in eine Datenbank einlesen. Das txt-File ist nicht zu gebrauchen, da die Anordnung nicht sauber ist und du mit regulären Ausdrücken jedesmal die komplette Datei durchlaufen müsstest.
Peter
Einen Kommentar schreiben:
-
Kontocheck via BAV ... einbauen.
Hi @all,
ich möchte überprüfen lassen, ob die eingegebene Kontonummer und die dazugehörige Bankleitzahl theoretisch möglich wären, um unnötige fehleingaben / zahlendreher abzustellen.
Aktuell wird nur nachgeschaut ob das Feld überhaupt beschrieben wurde oder nicht:
Ist ein Feld leer wird eine Fehlermeldung ausgegeben:PHP-Code:<?php if ($allowed['lastschrift']): ?>
<form method="post" class="paymentform" action="/<?php echo $lang ?>/order/lastschrift.php">
<fieldset>
<h2>Zahlung per Lastschrift</h2>
<input type="hidden" name="chorizo" value="<?php echo $csrf ?>">
<dl>
<dt><label for="Bankverbindung">Bankverbindung</label></dt>
<dd><input type="text" name="Bankverbindung" id="Bankverbindung" value="<?php if (!empty($form['Bankverbindung'])): ?><?php echo $form['Bankverbindung'] ?><?php endif ?>" /></dd>
<dt><label for="Kontoinhaber">Kontoinhaber</label></dt>
<dd><input type="text" name="Kontoinhaber" id="Kontoinhaber" value="<?php if (!empty($form['Kontoinhaber'])): ?><?php echo $form['Kontoinhaber'] ?><?php endif ?>" /></dd>
<dt><label for="BLZ">Bankleitzahl</label></dt>
<dd><input type="text" name="BLZ" id="BLZ" value="<?php if (!empty($form['BLZ'])): ?><?php echo $form['BLZ'] ?><?php endif ?>" /></dd>
<dt><label for="Konto">Kontonummer</label></dt>
<dd><input type="text" name="Konto" id="Konto" value="<?php if (!empty($form['Konto'])): ?><?php echo $form['Konto'] ?><?php endif ?>" /></dd>
</dl>
<input type="submit" name="submit" value="per Lastschrift bezahlen">
</fieldset>
</form>
<?php endif ?>
Nun möchte ich eben die zwei Felder ( BLZ / Kontonummer ) so belegen das nicht geschaut wird ob etwas drin steht sondern eben geschaut wird das die eingegebenen Daten entsprechend der BundesbankFile auch möglich sind.PHP-Code:case 'lastschrift':
if (empty($sess['uid'])) redirect('home', 'Ihr Auftrag wurde schon übermittelt. Vielen Dank!');
$cart = cache('fetch', 'cart_'.sID);
if (empty($cart)) redirect('home.html');
list($warengruppen, $seiten) = getMenu();
$form['Bankverbindung'] = isset($_POST['Bankverbindung']) ? $db -> real_escape_string($_POST['Bankverbindung']) : '';
$form['Kontoinhaber'] = isset($_POST['Kontoinhaber']) ? $db -> real_escape_string($_POST['Kontoinhaber']) : '';
$form['Bankleitzahl'] = isset($_POST['BLZ']) ? $db -> real_escape_string($_POST['BLZ']) : '';
$form['Konto'] = isset($_POST['Konto']) ? $db -> real_escape_string($_POST['Konto']) : '';
if (empty($form['Bankverbindung'])) redirect_ssl('order/payment', 'Bitte Feld Bankverbindung ausfüllen');
if (empty($form['Kontoinhaber'])) redirect_ssl('order/payment', 'Bitte Feld Kontoinhaber ausfüllen');
if (empty($form['Bankleitzahl'])) redirect_ssl('order/payment', 'Bitte Feld Bankleitzahl ausfüllen');
if (empty($form['Konto'])) redirect_ssl('order/payment', 'Bitte Feld Konto ausfüllen');
if (ifcsrf()) {
$bonitaet_status = get_bonitaet_status(array('CustomerID'=>$sess['uid']));
if (HAENDLER_ID <> 3) {
if (empty($bonitaet_status)) {
$bonitaet = checkBonitaet($sess['oid']);
if (empty($bonitaet['RC'])) {
save_bonitaet_status($sess['uid'], $bonitaet);
$bonitaet_status = $bonitaet['eScoreValue'];
} else $bonitaet_status = 'failed';
}
if (($bonitaet_status == 'R'))
redirect_ssl('order/payment', 'Es tut uns leid, aber aus Sicherheitsgründen wurden Sie nicht für das Lastschriftverfahren zugelassen. Bitte wählen Sie erneut!');
if (($bonitaet_status == 'Y') && get_Umsatz($sess['uid']) < 100)
redirect_ssl('order/payment', 'Es tut uns leid, aber aus Sicherheitsgründen wurden Sie nicht für das Lastschriftverfahren zugelassen. Bitte wählen Sie erneut!');
}
order_per_lastschrift(array('auftrag_id'=>$sess['oid'], 'customer_id'=>$sess['uid'], 'bank'=>$form, 'partner_id'=>$partner_id));
redirect_ssl('order/lastschrift_success');
}
$layout = 'checkout_layout';
break;
Dazu hab ich eben BAV gefunden und zumindest laut Beschreibung soll es ausreichen wenn man die TxT File der Bundesbank heranzieht, also das ganze ohne Datenbank laufen lassen kann. [ No DBS - Because BAV may use a text file as data source no DBS is necessary. ]
Kann mir da einer weiterhelfen ? oder gibt es alternativ ein Kontocheck Script ?Stichworte: -
Einen Kommentar schreiben: