isotope / core

Core repository of Isotope eCommerce, an eCommerce extension for Contao Open Source CMS
https://isotopeecommerce.org
136 stars 108 forks source link

Payone und postsale #1331

Closed thescrat closed 9 years ago

thescrat commented 9 years ago

Hi,

bei der Zahlart Payone kommt es bei der Transaction (=>postsale) ja dazu, dass es kein mod=pay&id= gibt, sondern stattdessen per param=paymentMethodPayone über den initializePostsale das richtige Modul geladen wird.

Problem ist jedoch, dass dieser Aufruf in jedem Fall einen Fehler produziert da bei https://github.com/isotope/core/blob/master/system/modules/isotope/postsale.php#L73 pauschal probiert wird "mod" und "id" zuzuweisen und erst danach über den HOOK das korrekte Modul geladen wird.

Wäre es hier nicht sinnvoll hier zu prüfen ob es diese Parameter gibt? Denn die generierte Antwort von Isotope ist:


WARNING: STRLEN() EXPECTS PARAMETER 1 TO BE STRING, ARRAY GIVEN IN SYSTEM/MODULES/ISOTOPE/POSTSALE.PHP& lt;/STRONG> ON LINE 76

 #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} 
TSOK

Und diese Fehlermeldung verhindert bei Payone den Abschluss der Transaktion, weil nur ein "TSOK" erwartet wird. Durch Abschalten der Fehlermeldungen würde es gehen, aber das kann ja nicht die Lösung sein :-)

Toflar commented 9 years ago

Das eigentliche Problem ist, dass Payone den Parameter id für interne Dinge verwendet und ein Array mitgibt, welches Isotope völlig egal ist. Der Hook hat damit nichts zu tun :-) Behoben in https://github.com/isotope/core/commit/db3f2a34ce3566560b09ffadf4c10523703930dd