Für ein Projekt benutze ich den Payment-Provider "Heidelpay" um Zahlungen durchführen zu können - Ich verwende hierfür die "phpAPI" von Heidelpay (https://dev.heidelpay.de/heidelpay-php-api/).
Nach Generierung der erforderlichen Daten für Heidelpay (und die Annahme seitens Heidelpay) wird ein POST an eine gewünschte URL zurückgegeben.
Hierfür habe ich ein Modul erstellt, dass die Response-Logik von Heidelpay verarbeitet und DB-Einträge vornimmt etc.
Das klappt auch alles wunderbar bei Kreditkarten-Zahlungen, bei allen anderen jedoch nicht und ich war am Grübeln wieso bei Kreditkarten der POST von Heidelpay OK ist, bei allen anderen war der POST leer aber Heidelpay hat die Zahlung akzpetiert.
Dann habe ich aus Zufall in das Contenido Security Log geschaut und dort meine verschwundenen Posts gefunden:
Code: Alles auswählen
2017-05-08 08:34:18 XXX.XXXX.XXX.XX
Query String: idart=XXXX
Bad parameter: lang
POST array: Array
(
[NAME_FAMILY] => Max Mustermann
[CRITERION_SDK_NAME] => Heidelpay\PhpApi
....
[LANG] => DE
....
)
Es scheint also, als ob der POST von Heidelpay, der ein "lang" enthält das Security Log triggert und mir den POST killt. Auch bei einem Test, die Rückgabe-URL mit "lang" anzugeben also "meineimaginärseite.com/front_content.php?idart=100&lang=1" führte zum selben Ergebnis.
Sollte das der Fall sein, ist es möglich, dass Contenido bestimmte Parameter nicht überprüft? Ich habe leider keinen Einfluss auf die Rückgabe von Heidelpay um das "lang" zu unterdrücken.
UPDATE:
Nach etwas weiterer Recherche habe ich folgendes gefunden: In der data/config/config.http_check.php habe ich sämtliche lang-Parameter entfernt, und das Log wird tatsächlich nicht mehr gefüllt und scheinbar geht das POST.
Jetzt passiert allerdings folgendes: Das Error-Log springt an und ich erhalte folgenden Error:
Code: Alles auswählen
[08-May-2017 09:12:41 Europe/Berlin] PHP Fatal error: Uncaught cInvalidArgumentException: Object ID must be greater than 0. in /home/XXX/public_html/2016/contenido/classes/class.registry.php:572
Stack trace:
#0 /home/XXX/public_html/2016/contenido/classes/class.registry.php(166): cRegistry::_fetchItemObject('cApiLanguage', 'DE')
...
Hat vielleicht jemand ein ähnliches Problem gehabt?
Danke, resp