Bugfix für fehlgeschlagene Kreditkartenbestellungen mit der Payone-Schnittstelle für OXID im IE8

Alle OXID-Formulare werden mit der “oxinputvalidator”-JS Bibliothek validiert. PayOne erweitert die Validierung um z.B. die Länge der Kreditkartennummer zu überprüfen. Die entsprechenden Erweiterungen befinden sich in den Dateien: /modules/fcPayOnce/out/blocks/fcpo_payment_override.tpl und in fcPayOne.js. Die Validierungsskripte liefern immer WAHR oder NICHT WAHR zurück. WAHR = Formular abschicken. NICHT WAHR = Fehlermeldung anzeigen.

Firefox & Webkit-Browser führen den Code wie folgt aus:

Payone-Validierung => OXID-Validierung.
d.h. Die KK-Länge & Prüfziffer werden als erstes geprüft. Falls irgendwas nicht stimmt, wird eine Fehlermeldung angezeigt.

IE führt wiederum die Validierung umgekehrt aus:
OXID-Validerung => Payone-Validierung

d.h. die OXID-Validierung prüft alles, stellt fest, dass alles in Ordnung ist und liefert WAHR zurück. Die Payone-Fehlermeldung wird angezeigt, allerdings schickt IE trotzdem das Bestellformular ab, da TRUE schon zurückgeliefert wurde.
Um den Fehler zu beheben, muss einfach die OXID-Validierung deaktiviert werden in dem man die Klasse “js-oxValidate” vom Bestellformular entfernt:

fcpo_payment_override.tpl:

<form action="[{ $oViewConf->getSslSelfLink() }]" id="payment" name="order" method="post" onsubmit="return fcCheckPaymentSelection();">

ersetzen durch

<form action="[{ $oViewConf->getSslSelfLink() }]" class="payment" id="payment" name="order" method="post" onsubmit="return fcCheckPaymentSelection();">

 




0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.