PayOne und Fehler in postsale.php
Ich verwende das Zahlungsmodul PayOne und habe in der PayOne-Verwaltung (PMI) als Transaktions-URL einen Link zur postsale.php angegeben (http://meineseite.de/system/modules/...e/postsale.php)
Wenn ich eine Bestellung im Testsystem ausführe, dann wird eigentlich alles korrekt durchgeführt... heißt, ich klicke auf "kaufen", gelange zur PayOne-Frontend-Schnittstelle, gebe dort z.B. meine Kreditkarten ein, klicke auf "zahlen" und gelange wieder zu Contao auf die success-Seite... und die Bestellung wird auch im Backend korrekt verbucht.
Im PMI von PayOne kann ich mir die letzten Transaktionen ansehen. Dort sehe ich auch, welche Daten von PayOne an meinen Server geschickt wurden und was PayOne als Antwort erhält. Als Antwort kommt aber von postsale.php folgender Fehler:
PHP-Code:
<BR><STRONG>WARNING</STRONG>: STRLEN() EXPECTS PARAMETER 1 TO BE STRING, ARRAY GIVEN IN <STRONG>SYSTEM/MODULES/ISOTOPE/POSTSALE.PHP& lt;/STRONG> ON LINE <STRONG>76</STRONG> <PRE STYLE="MARGIN:11PX 0 0"> #0 [INTERNAL FUNCTION]: __ERROR(2, 'STRLEN() EXPECT...', '/HOMEPAGES/2/D1...', 76, ARRAY) #1 SYSTEM/MODULES/ISOTOPE/POSTSALE.PHP(76): STRLEN(ARRAY) #2 SYSTEM/MODULES/ISOTOPE/POSTSALE.PHP(210): ISOTOPEPOSTSALE->__CONSTRUCT() #3 {MAIN} </PRE>TSOK
Das bezieht sich auf folgende Zeile in postsale.php
PHP-Code:
$this->setModuleId(strlen(\Input::post('id')) ? \Input::post('id') : \Input::get('id'));
PayOne erwartet als Antwort aber nur "TSOK" ohne irgendwelche anderen Zeichen davor... solange wird die Transaktion auch nicht als "bezahlt" markiert.
Weiß jemand, was setModuleId() macht bzw. wie ich den Fehler umgehen kann?
Eigentlich müsste PayOne wahrscheinlich sowas senden : .../postsale.php?mod=pay&id=1 wobei id die Zahlungsart-ID ist. Liegt es vielleicht nur am Testsystem?
Solte in 2.1.10 / 2.4 behoben sein? GELÖST
Code:
Details: Isotope\Model\Payment\Payone did not return a valid order
Funktion: Isotope\PostSale::run
Code:
Details: PayOne order data mismatch for Order ID ""
Funktion: Isotope\Model\Payment\Payone::processPostsale
IP-Adresse: xxxxxxxxxxxxxxxx
Browser: PAYONE FinanceGxxate
FAILED DEPENDENCY auf Seiten von Payone in der Transaktionsübersicht.
Nach einiger Zeit taucht die Bestellung im BE auf - sollte das nicht mit 2.1.10 behoben sein? Habe 2.1.13 in Betrieb.
EDIT: Auch ein Update auf Contao 3.5.24 und Isotope 2.4 brachte bei mir nichts. Payone Frontend Version weiterhin ohne Funktion:
Code:
Details: Payment could not be processed.
Funktion: Isotope\Model\Payment\Postsale::processPayment
EDIT 2:
Neuen Key generiert und auf MD5 + SHA eingestellt brachte bei mir Erfolg mit 2.4 und 3.5.24!