Jump to content
xt:Commerce Community Forum
Sign in to follow this  
DoggieDesign

Aktualisierung der Bankleitzahlen (blz.csv)

Recommended Posts

Hallo...

Trotzdem bekommen wir nach der Eingabe und den abschicken der Bankdaten nachwievor noch folgenden Fehler:

----------------------------------------------------------

1054 - Unknown column 'blz' in 'where clause'

SELECT * from banktransfer WHERE blz = '71052050'

Wird mich freuen wenn einer eine Idee hat... Danke :-)

Die Tabelle heisst banktransfer_blz. banktransfer hingegen beinhaltet die Bankdaten aus Bestellungen und hat eine vollkommen andere Struktur und Verwendungszweck. Daher:

SELECT * from banktransfer_blz WHERE blz = '71052050'

evtl müsst ihr das skript banktransfer_validation.php aktualisieren, war bei uns auch so.

Gruss Volker

Share this post


Link to post
Share on other sites

Hallo zusammen,

bei einer Bestellung hat ein Kunde folgendes Problem gehabt:

Bei Eingabe der Kontodaten - Bankleitzahl (76026000) - Norisbank - und der Kontonummer (die will ich hier mal nicht veröffentlichen) - kommt die Fehlermeldung:

"Diese Kontonummer ist nicht pruefbar, bitte kontrollieren zur Sicherheit Sie Ihre Eingabe nochmals."

und

"Bitte beachten Sie, dass das Lastschriftverfahren nur von einem deutschen Girokonto aus möglich ist".

Ich habe die blz.csv wie hier im Threat beschrieben aktualisiert und auch die banktransfer_validation korrigiert, obwohl im Modul "Datenbanksuche für die BLZ verwenden?" - der Wert auf "false" gestellt ist.

Bei anderen Banken und Kontonummern funktioniert alles einwandfrei...

Ich habe sehr wenig Ahnung von xt-commerce - wenn also jemand eine Idee hat, bitte möglichst einfach antworten, damit ich folgen kann :-)

Danke im Voraus!

Share this post


Link to post
Share on other sites

Ja, in der csv ist die Bank aufgeführt. Die Prüfzifferberechnungsmethode hatte sich aber tatsächlich in der alten und neuen Version geändert - deshalb hatte ich schon gehofft, dass Problem würde so gelöst... war aber nix.

Share this post


Link to post
Share on other sites

Tja, kann ich noch nichts zu sagen. Ein Kunde von uns hat das gleiche Problem. Wenn ich da was höre sag ich bescheid. Sonst müßte man evtl. mal bei der Bundesbank anfragen, ob sich am Schema etwas geändert hat...

Share this post


Link to post
Share on other sites

Workaround da die Prüfunktion anscheinend nicht implementiert ist:

/includes/classes/banktransfer_validation.php ca Zeile 2126:

// + da es C7 nicht gibt wird ohne Prüfung fortgesetzt #kk|mheinrich

case "C7" : $Result = 0; break;

// = da es C7 nicht gibt wird ohne Prüfung fortgesetzt #kk|mheinrich

bye, kchris

Share this post


Link to post
Share on other sites

ja genau kchris, das sollte klappen , top

also nochmal :

suchen nach :

case "C0" : $Result = $this->MarkC0($KontoNR, $BLZ); break;
direkt darunter das:
// + da es C7 nicht gibt wird ohne Prüfung fortgesetzt #kk|mheinrich

case "C7" : $Result = 0; break;

// = da es C7 nicht gibt wird ohne Prüfung fortgesetzt #kk|mheinrich


case "D0" : $Result = 0; break; // sw[/code]

einfügen.

Jetzt noch um "D0" erweitert.

Gruß Stephan

Share this post


Link to post
Share on other sites

Noch bessere Lösung:

default:

          $MethodName = "Mark$PRZ";

          if (method_exists($this, $MethodName)){

            $Result = call_user_func (array($this, $MethodName), $KontoNR);

          } else {

             // + Workaround damit Bestellvorgang weitergeht wenn Prüfverfahren nicht da #kk|mheinrich

                // old

                //$Result = 3;

                $Result = 0;

             // = Workaround damit Bestellvorgang weitergeht wenn Prüfverfahren nicht da #kk|mheinrich

          }

        }  /* end switch */

Testen auf eigene Gefahr ;)

Share this post


Link to post
Share on other sites

Hallo,

ich stehe momentan vor dem gleichen Problem. Zuerst hatten sich einige Kunden gemeldet, die mit neuen BLZ sich angemeldet hatten und die natürlich abgelehnt wurden. Also habe ich mir die letzte Liste der Bundesbank geholt und in Excel bzw. Openoffice in eine csv Datei umgewandelt. Damit funktionierte auch fast alles, es meldete sich nach kurzer Zeit aber ein Kunde, dessen Kontonummer nicht mehr geprüft werden konnte. Er hatte aber vor der BLZ Aktualisierung schon mal was gekauft, die Bank ist nicht neu und es hat sich auch weder die BLZ noch die Prüfziffer geändert und die Bank ist auch in der Liste drin.

Ich hab auch schon die hier gepostete andere banktransfer_validation.php eingesetzt, hab die doppelten Einträge mal per Excel Macro entfernt und mal über die Routine auf snyware. Es ist immer das gleiche. Wenn ich jetzt die alte Datei wieder einsetze, wird die Kontonummer wieder richtig erkannt. Das Problem liegt also eindeutig in der csv Datei.

Es handelt sich dabei um die Stadtsparkasse Bad Honnef, BLZ: 38051290

Hat jemand eine Idee, wo das Problem liegt oder würde mir jemand eine funktionierende aktuelle csv Datei zukommen lassen?

Danke schonmal im Voraus.

Share this post


Link to post
Share on other sites

Hallo an Alle, die auch mit dem Modul Laschrift arbeiten,

Eigentlich ist es garnicht so schwer, alle Infos aktuell zu halten, wenn man weiss, wo man hinlangen muss.

Zuerst müsst Ihr natürlich eine aktuelle blz.csv Datei erstellen (liegt im Shop unter /includes/data).

Am Besten ihr ladet Euch die aktuellste Version als Excel Tabelle von Deutsche Bundesbank herunter. Dann öffnet Ihr die Tabelle in Excel und löscht alle Spalten ausser Bankleitzahl, Bezeichnung sowie Prüfzifferberechnungsmethode. Dann noch die Erste Zeile mit den Bezeichungen löschen. Nun haben wir zwar alle Bankdaten, aber auch viele doppelte (von Zweigstellen). Dies entfernt man, indem man in die freie Zeile D1 folgende Formel hinkopiert: =WENN(VERGLEICH(A1;A:A;0)=ZEILE();"";"Doppelt")

und anschliessend diese nach unten bis zur letzten Zeile kopiert. Jetzt werden alle doppelten Einträge angezeigt. Mit der Excel Funktion "Autofilter" im Menü Daten => Filter kann man diese sehr schön filtern und alle doppelten löschen (dauert u.U. einige Minuten). Damit haben wir eine aktuelle Liste, in der jede BLZ einmal vorkommt. Bei dieser Methode wird nur der Erste Eintrg der BLZ verwendet. Dies sollte in den meisten Fällen auch korrekt sein, da sich an der Ersten Stelle immer die Hauptfiliale befindet. Hab zumindest noch keinen Fall gehabt, bei dem die Bezeichnung zur Ersten BLZ nicht gepasst hätte.

Jetzt noch die Spalte mit den Filtern löschen sowie den Ersten Eintrag der Bundesbank und das Ganze als .csv speichern. Danach unbedingt kontrollieren, ob das Prüfverfahren "00" auch wirklich mit zwei Nullen in der .csv Datei drin steht (ggf. mittels Ersetzen Funktion in Wordpad korrigieren), sonst klappt das nicht.

Damit hat man eine Liste, die man so hochladen kann. Wer nicht die .csv Datei nutzt, sondern die Datenbank (Kann im Bereich Zahlungsmodule - Banktransfer eingestellt werden), muss die Daten entsprechend importieren.

Im zweiten Schritt muss geprüft werden, ob die Prüfverfahren aktuell sind. XT-Commerce überprüft die Kontonummer auf Plausibilität anhand des aus dieser Liste übermittelten Prüfverfahren aus der Spalte 3. Die Datei, die dafür zuständig ist heisst banktransfer-validation.php und liegt unter /includes/classes. Wer hier eine alte Version hat, hat eigentlich schon verloren, denn in den letzten 2 Jahren wurden viele Prüfverfahren geändert oder sind neu hinzugekommen. Die aktuellste Version (07.06.2010) habe ich zusammengestellt und angehängt. Diese muss einfach gegen Eure alte Datei ausgetauscht werden und fertig.

Da die Bankleitzahlen und Prüfverfahren jeweils nur für ein Quartal gültig sind, empfiehlt sich ein Check etwa jedes halbe Jahr, um auf dem aktuallsten Stand zu bleiben.

banktransfer_validation.zip

Edited by Mad_Nico

Share this post


Link to post
Share on other sites

wie wärs mal mit nem Danke :D

Also ich bedanke mich für die neue Valadierungs-Datei. Ich habe zwar mit etwa der gleichen Methode die neue blz.csv erstellt aber seit dem kamen fast noch mehr meldungen als vorher :D

Hoffe das hat sich damit jetzt erledigt!!!

Danke auf jeden Fall dafür!!!!!

Share this post


Link to post
Share on other sites

Hallo mal in die Runde,

sitze gerade an einer Aktualisierung für die Prüfverfahren. Die Überarbeitung ist fast ferig. Habe aber noch ein Problem / Bug gefunden, der mir etwas Kopfzerbrechen bereitet.

In der Methode 06 gibt es einens Sonderfall, wenn der Modulator 7 ist.

    
// Bedingung bei Modulator 7
if ($Help < 2 && $Modulator == 7) {
$Checksum = 0;
}
[/PHP]

Ich bin mir nicht Sicher, warum dies drin steht und bei welchen Fall diese Bedingung erfüllt ist. Bei dem neuen Prüfverfahren D5 habe ich damit ein Problem, dass bei Prüfziffern von 1 (kann ja vorkommen) die Kontonummer als korrekt gemeldet wird, obwohl sie es nicht ist.

Hat jemand eine Idee?

Grüße, Nico

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...