Franz Holzinger

Verse of the day

Wer sich aber rühmt, der rühme sich des HERRN. Denn darum ist einer nicht tüchtig, daß er sich selbst lobt, sondern daß ihn der HERR lobt.
2 Korinther 10:17-18

© Bible Gateway's Verse of the Day


Specific Gateway Extensions
 
 
Exception mit transactor_paypal unter TYPO3 v8
 
autor: Sebastian Klein Datum: 26-07-18 11:01:03
 
Hallo Herr Holzinger,

ich erhalte aktuell eine TYPO3 Exception bei Verwendung von "Transactor PayPal Gateway" unter den folgenden Voraussetzungen:
- Aufruf des Warenkorbs mit dem Plugin "Warenkorb: Kontrolle und Bezahlung"
- TypoScript: "plugin.tt_products.paymentActivity = payment"
- Extension Manager, "transactor": Compatibility Mode auf "0" (= neue API)
- Versionen:
• TYPO3 8.7.13
• tt_products 3.0.0.52
• transactor 0.7.0
• transactor_paypal 0.2.4



Die Fehlermeldung:
#1476107295: PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'JambageCom\Transactor\Api\Start' does not have a method 'render' in typo3conf/ext/tt_products/Classes/Controller/ActivityController.php line 331 (More information)

TYPO3\CMS\Core\Error\Exception thrown in file
typo3_src-8.7.13/typo3/sysext/core/Classes/Error/ErrorHandler.php in line 107.

22 TYPO3\CMS\Core\Error\ErrorHandler::handleError(2, "call_user_func_array() expects parameter 1 to be a…nsactor\Api\Start' does not have a method 'render'", "/pfad/zu/typo3conf/ext/tt_products/Classes/Controller/ActivityController.php", 331, array)
21 call_user_func_array("\JambageCom\Transactor\Api\Start::render", array)

/pfad/zu/typo3conf/ext/tt_products/Classes/Controller/ActivityController.php:
00329: $content = call_user_func_array(
00330: $callingClassName . '::render',
00331: $parameters
00332: );
00333: debug ($callingClassName, '$callingClassName nach transactor render');

Tatsächlich scheint die Methode "render" in der Klasse "Start" nicht zu existieren.

---------------------

Wenn ich stattdessen im Extension Manager bei "transactor" den Compatibility Mode auf "1" setze, erhalte ich eine andere Fehlermeldung:

Warning: Uncaught TYPO3\CMS\Core\Error\Exception: PHP Warning: require_once(/pfad/zu/typo3conf/ext/transactor_paypal/model/class.tx_transactorpaypal_gateway.php): failed to open stream: No such file or directory in /pfad/zu/typo3conf/ext/transactor/model/class.tx_transactor_gatewayproxy.php line 65 in /pfad/zu/typo3_src-8.7.13/typo3/sysext/core/Classes/Error/ErrorHandler.php:107 Stack trace: #0 /pfad/zu/typo3conf/ext/transactor/model/class.tx_transactor_gatewayproxy.php(65): TYPO3\CMS\Core\Error\ErrorHandler->handleError(2, 'require_once(/p...', '/pfad/zu/...', 65, Array) #1 /pfad/zu/typo3conf/ext/transactor/model/class.tx_transactor_gatewayproxy.php(65): require_once() #2 /pfad/zu/typo3conf/ext/transactor/model/class.tx_transactor_gatewayfactory.php(82): tx_transactor_gatewayproxy->init('transactor_payp...') #3 /pfad/zu/typo3conf/ext/transactor/Classes/Api/PaymentPre in /pfad/zu/typo3_src-8.7.13/typo3/sysext/core/Classes/Error/ErrorHandler.php on line 107


Dieser Fehler erfolgt durch die Zeile 65 in class.tx_transactor_gatewayproxy.php:
require_once(t3lib_extMgm::extPath($extKey) . 'model/class.' . $this->gatewayClass . '.php');
Sie generiert einen Pfad zur Datei "class.tx_transactorpaypal_gateway.php", welche nicht existiert in der Extension "transactor".

---------------------

Welchen Compatibility Mode sollte ich unter den oben genannten Voraussetzungen besser verwenden?
Und wie kann ich den entsprechenden Fehler dann beheben: ist es eine Fehlkonfiguration auf meiner Seite oder muss eine der Extensions angepasst werden?

---------------------

Der Vollständigkeit halber noch mein TypoScript zur Bezahlart "PayPal":

lib.transactor_paypal {
extName = transactor_paypal
extTitle = PayPal Website Payments Standard
extInfo = PayPal enables any business or consumer with an email address to securely, conveniently, and cost-effectively send and receive payments online.
extImage = EXT:transactor_paypal/Resources/Public/Images/paypal_euro.gif
gatewaymode = form
paymentMethod = paypal_webpayment_standard
currency = EUR
templateFile = EXT:transactor/Resources/Private/Templates/PaymentHtmlTemplate.html
costs = auto

returnPID = 190
cancelPID = 189
}

plugin.tt_products {
payment >
payment {
radio = 1
50.title = Vorkasse
60.title = PayPal
60.handleLib = transactor
60.handleLib < lib.transactor_paypal
60.image.file = EXT:transactor_paypal/Resources/Public/Images/PP_logo_h_200x51.png
}
}