QuickPay / magento-v2

Open Software License 3.0
5 stars 20 forks source link

Compatibility to Magento 2.4.4 (PHP 8.1) - Unzer/Quickpay not working with m2.4.4 on php8.1 #31

Closed BeenDelux closed 1 year ago

BeenDelux commented 1 year ago

Hey,

we tried to use this extension on Magento 2.4.4 with php8.1.

We also set the settings in Backend and activated credit/debit card payment method.

While checkout on frontend, we can select the payment method. For some reason there is no form to fill out payment details. Just the hitboxes for terms can be selected. Once we finish payment, an error comes up: something went wrong, please try again.

If we have a look into the logs there are some errors inside;

main.CRITICAL: Warning: Undefined array key "url" in /magento2/vendor/unzer-direct/magento2/Model/Adapter/UnzerDirectAdapter.php on line 309 [] [] main.CRITICAL: Exception message: Warning: Trying to access array offset on value of type bool in /magento2/vendor/unzer-direct/magento2/Controller/Payment/Redirect.php on line 102 Trace:

#1 UnzerDirect\Gateway\Controller\Payment\Redirect->execute() called at [vendor/magento/framework/Interception/Interceptor.php:58]

2 UnzerDirect\Gateway\Controller\Payment\Redirect\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]

3 UnzerDirect\Gateway\Controller\Payment\Redirect\Interceptor->Magento\Framework\Interception{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]

4 UnzerDirect\Gateway\Controller\Payment\Redirect\Interceptor->___callPlugins() called at [generated/code/UnzerDirect/Gateway/Controller/Payment/Redirect/Interceptor.php:23]

5 UnzerDirect\Gateway\Controller\Payment\Redirect\Interceptor->execute() called at [vendor/magento/framework/App/Action/Action.php:111]

6 Magento\Framework\App\Action\Action->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58]

7 UnzerDirect\Gateway\Controller\Payment\Redirect\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]

8 UnzerDirect\Gateway\Controller\Payment\Redirect\Interceptor->Magento\Framework\Interception{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]

9 UnzerDirect\Gateway\Controller\Payment\Redirect\Interceptor->___callPlugins() called at [generated/code/UnzerDirect/Gateway/Controller/Payment/Redirect/Interceptor.php:32]

10 UnzerDirect\Gateway\Controller\Payment\Redirect\Interceptor->dispatch() called at [vendor/magento/framework/App/FrontController.php:245]

11 Magento\Framework\App\FrontController->getActionResponse() called at [vendor/magento/framework/App/FrontController.php:212]

12 Magento\Framework\App\FrontController->processRequest() called at [vendor/magento/framework/App/FrontController.php:147]

13 Magento\Framework\App\FrontController->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58]

14 Magento\Framework\App\FrontController\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]

15 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}() called at [vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php:99]

16 Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch() called at [vendor/magento/framework/Interception/Interceptor.php:135]

17 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}() called at [vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php:75]

18 Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch() called at [vendor/magento/framework/Interception/Interceptor.php:135]

19 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]

20 Magento\Framework\App\FrontController\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/App/FrontController/Interceptor.php:23]

21 Magento\Framework\App\FrontController\Interceptor->dispatch() called at [vendor/magento/framework/App/Http.php:116]

22 Magento\Framework\App\Http->launch() called at [vendor/magento/framework/App/Bootstrap.php:264]

23 Magento\Framework\App\Bootstrap->run() called at [pub/index.php:30]

After this, magento creates an order "pending" without any capture/authorize actions. Once we try to cancel them, an error follows - cannot cancel order.

The logs shows following:

main.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2/vendor/unzer-direct/magento2/Observer/CancelOrderAfter.php on line 31 in /magento2/vendor> Stack trace:

0 [internal function]: Magento\Framework\App\ErrorHandler->handler()

1 /magento2/vendor/unzer-direct/magento2/Observer/CancelOrderAfter.php(31): explode()

2 /magento2/vendor/magento/framework/Event/Invoker/InvokerDefault.php(88): UnzerDirect\Gateway\Observer\CancelOrderAfter->execute()

3 /magento2/vendor/magento/framework/Event/Invoker/InvokerDefault.php(74): Magento\Framework\Event\Invoker\InvokerDefault->_callObserverMethod()

4 /magento2/vendor/magento/framework/Event/Manager.php(66): Magento\Framework\Event\Invoker\InvokerDefault->dispatch()

5 /magento2/generated/code/Magento/Framework/Event/Manager/Proxy.php(95): Magento\Framework\Event\Manager->dispatch()

6 /magento2/vendor/magento/module-sales/Model/Order.php(1281): Magento\Framework\Event\Manager\Proxy->dispatch()

7 /magento2/vendor/magento/module-sales/Model/Service/OrderService.php(109): Magento\Sales\Model\Order->cancel()

8 /magento2/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Sales\Model\Service\OrderService->cancel()

9 /magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Model\Service\OrderService\Interceptor->___callParent()

10 /magento2/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Model\Service\OrderService\Interceptor->Magento\Framework\Interception{closure}()

11 /magento2/generated/code/Magento/Sales/Model/Service/OrderService/Interceptor.php(23): Magento\Sales\Model\Service\OrderService\Interceptor->___callPlugins()

12 /magento2/vendor/magento/module-sales/Controller/Adminhtml/Order/Cancel.php(35): Magento\Sales\Model\Service\OrderService\Interceptor->cancel()

13 /magento2/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Sales\Controller\Adminhtml\Order\Cancel->execute()

14 /magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->___callParent()

15 /magento2/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->Magento\Framework\Interception{closure}()

16 /magento2/generated/code/Magento/Sales/Controller/Adminhtml/Order/Cancel/Interceptor.php(23): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->___callPlugins()

17 /magento2/vendor/magento/framework/App/Action/Action.php(111): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->execute()

18 /magento2/vendor/magento/module-backend/App/AbstractAction.php(151): Magento\Framework\App\Action\Action->dispatch()

19 /magento2/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Backend\App\AbstractAction->dispatch()

20 /magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->___callParent()

21 /magento2/vendor/magento/module-backend/App/Action/Plugin/Authentication.php(145): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->Magento\Framework\Interception{closure}()

22 /magento2/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch()

23 /magento2/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->Magento\Framework\Interception{closure}()

24 /magento2/generated/code/Magento/Sales/Controller/Adminhtml/Order/Cancel/Interceptor.php(32): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->___callPlugins()

25 /magento2/vendor/magento/framework/App/FrontController.php(245): Magento\Sales\Controller\Adminhtml\Order\Cancel\Interceptor->dispatch()

26 /magento2/vendor/magento/framework/App/FrontController.php(212): Magento\Framework\App\FrontController->getActionResponse()

27 /magento2/vendor/magento/framework/App/FrontController.php(147): Magento\Framework\App\FrontController->processRequest()

28 /magento2/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch()

29 /magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent()

30 /magento2/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}()

31 /magento2/generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins()

32 /magento2/vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch()

33 /magento2/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http->launch()

34 /magento2/pub/index.php(30): Magento\Framework\App\Bootstrap->run()

35 {main} [] []

Any ideas how to fix this?

BeenDelux commented 1 year ago

closed.