Fehlermeldung Skrill / Moneybookers Modul bei mb_response.php

Bei der Installation des Skrill Moduls (Moneybookers) für OXID 4.6 sind wir auf ein Problem gestoßen, dass wir nach einigem Debuggen schlussendlich aufklären konnten. Damit Sie vielleicht schneller die Lösung finden, veröffentlichen wir es hier als kleinen Gedankenanstoß.

Nach dem Auswählen einer Moneybookers / Skrill Zahlungsart im OXID Checkout leitete der Shop weiter auf die Seite

https://test.nextgenpay.com/frontend/payment.prc

(so lautet die URL im Skrill Test-Modus)

Dort erschien folgende Fehlermeldung:

Dear Customer,
 Due to a technical error the processing has been disrupted. 
 Please contact customer service for further information about your payment transaction. 

 Sehr geehrter Kunde, sehr geehrte Kundin,
 leider ist ein technischer Fehler bei der Abwicklung Ihrer Zahlung aufgetreten. 
 Bitte setzen Sie sich mit dem Kundenservice in Verbindung, um den Status Ihrer Zahlung zu erfahren.

Auf Nachfrage bei Skrill erhielt ich die Nachricht: „Das ist keine Fehlerbeschreibung von Skrill/Moneybookers. Diese Fehlermeldung kommt sehr wahrscheinlich vom Shopsystem.“ — sehr hilfreiche Aussage. Kann natürlich nicht stimmen, denn die URL test.nextgenpay.com gehört ja nun mal zu Skrill.

mb_response.php

Im access_log unserer Webservers haben wir festgestellt, dass Skrill einen Callback auf den Webshop macht, nämlich auf die URL mb_response.php — diese Datei wird natürlich verschlüsselt ausgeliefert, so dass dort ein Debugging zunächst schwierig erscheint. Im access_log sahen wir Status „200 OK“ – das ist ja erstmal wenig verdächtig. Trotzdem waren wir der Überzeugung, dass hier die Wurzel allen Übels liegen musste.

Also fingen wir den POST Inhalt ab, den Moneybookers ans Shop-System sendet, um dann einmal selbst diesen POST auf die URL zu senden, und siehe da, was war die Antwort?

<br />
<b>Strict Standards</b>:  Declaration of d3_cfg_mod::getSelectFields() should be compatible with that of oxBase::getSelectFields() in <b>/var/www/oxid/htdocs/www/core/d3_cfg_mod.php</b> on line <b>23</b><br />
<br />
<b>Notice</b>:  Use of undefined constant NONE – assumed ‚NONE‘ in <b>/var/www/oxid/htdocs/www/core/oxutilsobject.php</b> on line <b>142</b><br />
https://skrill.topconcepts.de/index.php?force_sid=olhkdp7dbbpulo5mesvebcva37&cl=order&stoken=2ED79416

Toll, das PHP error_reporting hat da zwei Meldungen E_STRICT und E_NOTICE ausgegeben, die vor der Weiterleitungs-Ziel-URL ausgegeben wurden, so dass Skrill quasi nur Murks zurückbekam, und nicht auf den Shop korrekt zurückleiten konnte.

Das alles also nur, weil auf dem Server das error_reporting aktiviert war. Einfach abschalten, dann läuft’s!

 

Schreibe einen Kommentar

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: