Opened 12 years ago
Closed 11 years ago
#35 closed Neues Feature (fixed)
Zahlungsmodule für Überweisung für SEPA vorbereiten
| Reported by: | Torsten Riemer | Owned by: | Volker Rehn |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.0.0 |
| Component: | Shop | Version: | 1.06 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description (last modified by )
Wir müssen die Zahlungsmodule für Überweisung für SEPA vorbereiten zwecks Bankdatenvaldierung, siehe: http://www.iban.de/iban-pruefsumme.html. Betroffen ist das Modul banktransfer, evtl weitere, die mit Bankdaten hantieren.
- Prüflib http://code.google.com/p/php-iban/ nach includes/external/php-iban übernehmen
- im modul banktransfer.php einige Stellen
- 2 weitere Eingabefelder IBAN / BIC bei den Bankdaten
- zwei weitere Felder banktransfer_iban varchar(50), banktransfer_bic varchar(11) in Tabelle banktransfer
- Prüfroutine analog zur bisherigen Bankdatenprüfung, dh neue class ibanktransfer_validation.php, oder eher direkt aus der externen Prüflib
- Daten normalisieren vor dem Speichern, also Zusatz "iban" und Leer- oder andere Trennzeichen etc entfernen
Normalisierung wird auch von der Prüf-lib gemacht, den Code können wir übernehmen/nutzen. Für die Prüfung durch den shop ist das egal, die varchar(50) lassen Platz für allerhand Schnörkel, aber nachgeschaltete Wawis erwarten uU standardisierte ibans.
Vorrangregelung: Wenn beide Bankdatenarten (national/international) angegeben werden, beide nehmen? Beide prüfen?
-> Steuerung der Pflichtfelder anpassen
lang/<language>/modules/payment
- Erweiterung admin/orders um die neuen Felder
Schnittstellen
Amicron
Das Amicron Shopschnittstellenskript export/af_xtscript<nr>.php übernimmt bankdaten aus banktransfer, kennt aber natürlich die neuen Felder nicht. Es funktioniert weiterhin, nur die neuen Daten werden nicht transportiert. Sollen wir Amicron das mitteilen? Hinweis an Anwender, dass die selber anpassen müssen?
export/xml_export.php ist auch betroffen.
Attachments (3)
Change History (13)
comment:1 by , 12 years ago
| Description: | modified (diff) |
|---|
comment:2 by , 12 years ago
comment:3 by , 12 years ago
| Description: | modified (diff) |
|---|
comment:4 by , 12 years ago
| Description: | modified (diff) |
|---|
comment:5 by , 12 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
by , 12 years ago
comment:6 by , 12 years ago
habe sepa.php angehängt, dort sind die Änderungen fürs modul banktransfer und für die zuhehörigen Einträge unter lang/german/modules/payment/banktransfer.php drin. In der DB sind außerdem folgende statements auszuführen:
alter table banktransfer add banktransfer_iban varchar(50) DEFAULT NULL;
alter table banktransfer add banktransfer_bic varchar(11) DEFAULT NULL;
Bitte testen.
comment:7 by , 12 years ago
Ich habs in meinem lokalen Trunk integriert und mal getestet.
include(DIR_WS_EXTERNAL . 'php-iban/php-iban.php');
sollte
include(DIR_FS_EXTERNAL . 'php-iban/php-iban.php');
Im Moment scheinen die beiden Felder IBAN & BIC keine "Mussfelder" zu sein.
Ich kann bei beiden eingeben was ich will und bekomme intern zwar "$banktransfer_result = 12", aber es kommt keine Fehlermeldung via javascript_validation() hoch...
siehe folgendes Attachment
by , 12 years ago
| Attachment: | banktransfer_sepa_trunk.rar added |
|---|
comment:8 by , 12 years ago
Folgendes habe ich heute von Christian Rothe erhalten:
Hallo Simon,
die Bundesbank hat ihr Repertoire der Prüfverfahren für Kontonummern wieder einmal erweitert. Ich habe wieder einmal die aktuellen Änderungen und Ergänzungen in das Modul banktransfer_validation.php eingebaut. Es repräsentiert den aktuellen Stand vom 09.12.2013.
Darüber hinaus enthält das Modul eine weitere Ergänzung - nämlich die Möglichkeit, IBAN-Nummern zu prüfen. Dabei ist die Sache so aufgebaut, dass alles voll kompatibel zu bisherigen XTC-Versionen und Derivaten läuft. Deshalb kann man mein Modul 1:1 sofort in bestehende Shops einbauen. Die Kombination Konto-Nr./BLZ kann wie bisher weiter geprüft werden. Wenn man IBANs prüfen möchte, geschieht dies über die Klassenerweiterung IbanAccountCheck, welche die weiter bestehende alte Klasse AccountCheck erweitert.
Hier die alte (weiterhin gültige) Einbindung der Kontonummernprüfung aus dem Zahlungsmodul banktransfer.php:
include(DIR_WS_CLASSES . 'banktransfer_validation.php'); $banktransfer_validation = new AccountCheck; $banktransfer_result = $banktransfer_validation->CheckAccount(xtc_db_prepare_input($_POST['banktransfer_number']), xtc_db_prepare_input($_POST['banktransfer_blz']));
Will man künftig IBANs prüfen, ginge dies mit einem leicht modifizierten Code:
include(DIR_WS_CLASSES . 'banktransfer_validation.php'); $banktransfer_validation = new IbanAccountCheck; $banktransfer_result = $banktransfer_validation->IbanCheckAccount(xtc_db_prepare_input($_POST['banktransfer_iban']));
Meine IBAN-Kontonummern-Prüfung prüft im ersten Schritt die IBANs auf Plausibilität. Dies klappt für alle gängigen Länder. Sollte es sich um eine deutsche IBAN-Kontonummer handeln, werden zusätzlich noch die Prüfmethoden der Bundesbank zur Prüfung der BLZ und Kontonummer herangezogen, die bekanntlich in der IBAN enthalten sind.
Ich denke, dass dieses Klassenmodul schon mal die halbe Miete ist, um auch im SEPA-Zeitalter als Shopbetreiber weiter die Möglichkeit zur Lastschriftzahlungen anbieten zu können. Es enthält alle relevanten Prüfmethoden für deutsche Kontonummern. Jetzt muss nur noch jemand das banktransfer.php-Zahlungsmodul anpassen und schon kann der Modified-Shop auch mit SEPA-Lastschriften umgehen.
comment:9 by , 12 years ago
Hier eine weitere Mail von Christian Rothe:
Hallo Torsten,
vielen Dank für Deine Antwort. Anbei noch eine erweiterte Version meines aktuellen Moduls banktransfer_validation.php
Es kann jetzt auch noch die BIC Codes auf Plausibilität überprüfen.
Hier der Code zur Einbindung:
include(DIR_WS_CLASSES . 'banktransfer_validation.php'); $banktransfer_validation = new IbanAccountCheck; $banktransfer_result = $banktransfer_validation->IbanCheckAccount(xtc_db_prepare_input($_POST['banktransfer_iban']), xtc_db_prepare_input($_POST['banktransfer_bic']));
Allerdings ist der BIC-Code als Parameter nur optional. In Zukunft (ab Februar 2014) wird es im innerdeutschen Zahlungsverkher möglich sein, Geld auch ohne BIC zu überweisen bzw. abzubuchen. Deshalb funktioniert die Kontoprüfung auch, wenn man nur die IBAN-Nummer übergibt: $banktransfer_validation->IbanCheckAccount($banktransfer_iban');
Der Charme meines Moduls besteht darin, dass die Plausibiltätsprüfung der deutschen Kontonummern komplett integriert ist und Fehleingaben nun nahezu unmöglich sind.
Die Datei von Christian Rothe (banktransfer_validation.zip) habe ich hier im Ticket mal angehängt.
comment:10 by , 11 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
SEPA wurde bereits komplett integriert. Eine automatische Errechnung von IBAN wird nicht integriert

SEPA Überweisung ist bereits mit dem Modul "EUSTANDARDTRANSFER" möglich.
Für SEPA Lastschrift(!) existieren noch keine Anpassungen.