multisafepay / magento2 Goto Github PK
View Code? Open in Web Editor NEWMultiSafepay plugin for Magento 2
License: Open Software License 3.0
MultiSafepay plugin for Magento 2
License: Open Software License 3.0
Describe the bug
See: MultiSafepay/magento2-core#7
This adds back the 'Fetch' button the previous plugin did have on transaction screen in Magento.
To Reproduce
Expected behavior
Describe the bug
Cart / checkout error after updating plugin v2.5 -> 2.21
Cart just shows blank screen
Checkout shows: An error has happened during application run. See exception log for details.
[2022-10-11 09:00:37] main.CRITICAL: TypeError: explode() expects parameter 2 to be string, null given in /var/domains/X.com/application/vendor/multisafepay/magento2-core/Model/Ui/Gateway/EinvoicingConfigProvider.php:57
Stack trace:
#0 /var/domains/X.com/application/vendor/multisafepay/magento2-core/Model/Ui/Gateway/EinvoicingConfigProvider.php(57): explode(',', NULL)
#1 /var/domains/X.com/application/vendor/multisafepay/magento2-core/Model/Ui/Gateway/EinvoicingConfigProvider.php(42): MultiSafepay\ConnectCore\Model\Ui\Gateway\EinvoicingConfigProvider->getCheckoutFields()
#2 /var/domains/X.com/application/vendor/multisafepay/magento2-frontend/Plugin/Checkout/Model/CompositeConfigProvider.php(51): MultiSafepay\ConnectCore\Model\Ui\Gateway\EinvoicingConfigProvider->getConfig()
#3 /var/domains/X.com/application/vendor/magento/framework/Interception/Interceptor.php(146): MultiSafepay\ConnectFrontend\Plugin\Checkout\Model\CompositeConfigProvider->afterGetConfig(Object(Magento\Checkout\Model\CompositeConfigProvider\Interceptor), Array)
#4 /var/domains/X.com/application/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Checkout\Model\CompositeConfigProvider\Interceptor->Magento\Framework\Interception\{closure}()
#5 /var/domains/X.com/application/generated/code/Magento/Checkout/Model/CompositeConfigProvider/Interceptor.php(23): Magento\Checkout\Model\CompositeConfigProvider\Interceptor->___callPlugins('getConfig', Array, Array)
#6 /var/domains/X.com/application/vendor/magento/module-checkout/Block/Onepage.php(106): Magento\Checkout\Model\CompositeConfigProvider\Interceptor->getConfig()
#7 /var/domains/X.com/application/vendor/magento/module-checkout/Block/Onepage.php(128): Magento\Checkout\Block\Onepage->getCheckoutConfig()
#8 /var/domains/X.com/application/vendor/magento/module-checkout/view/frontend/templates/onepage.phtml(27): Magento\Checkout\Block\Onepage->getSerializedCheckoutConfig()
To Reproduce
Steps to reproduce the behavior:
Additional context
Updated the plugin on a system with an old version of the plugin 2.5:
composer update multisafepay/magento2 --with-dependencies
Updated without any errors.
When we run bin/magento setup:di:compile on a 2.4.1 install we get the following error when MSI is disabled (Composer replace all the MSI packages).
Compilation was started.
Area configuration aggregation... 5/9 [===============>------------] 55% 1 min 206.0 MiB
In ClassReader.php line 45:
Impossible to process constructor argument Parameter #0 [ <required> Magento\InventorySalesApi\Api\Data\ItemToSellInterfaceFactory $itemToSellFactory ] of MultiSafepay\ConnectMSI\Model\StockReducer class
In ClassReader.php line 34:
Class Magento\InventorySalesApi\Api\Data\ItemToSellInterfaceFactory does not exist
setup:di:compile
Is your feature request related to a problem? Please describe.
When an order is partially refunded, it would be nice to be able to display a separate order status which shows that an order is partially refunded. This also works better for accounting software used by webshops, plus the merchant can easily see that an order is partially refunded.
Describe the solution you'd like
Create configuration settings which allow specifying a separate order status for partially refunded orders, just like the way it used to be in Magento 1.
Describe alternatives you've considered
N/A
Additional context
In Magento 1 this was available in the configuration:
Describe the bug
Order stays on Pending Payment in local dev environment.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Order should be on 'processing' instead of 'pending payment'. Full amount is still due.
Desktop (please complete the following information):
Magento 2.3.5-p1.
MSP 2.14.2
Additional context
MSI is disabled. I have installed the full package through composer. ConnectMSI is disabled.
I have tried enabling/disabling ConnectCatalogInventory. Does not seem to make a difference.
MSP log entry:
[2021-11-04 15:25:29] MultiSafepay.DEBUG: (Order ID: 2000000380) User redirected to the following page: https://testpayv2.multisafepay.com/simulator/ideal?trxid=4442569319105622&ideal=prob&issuerid=0021&merchantReturnURL=https%3A%2F%2Ftestpay%2Emultisafepay%2Ecom%2Fdirect%2Fcomplete%2F%3Fmspid%3D5087765 [] []
[2021-11-04 15:25:34] MultiSafepay.DEBUG: (Order ID: 2000000380) User redirected to the success page. [] []
Am I missing something? If not, where can I start to debug this?
Describe the bug
Getting Error: Call to a member function setMethodCode(), while creating a refund
Magento: 2.4.4
MSP version: 2.21.0
To Reproduce
Expected behavior
Credit memo should be created
Additional context
main.CRITICAL: Error: Call to a member function setMethodCode() on null in /data/web/magento2/vendor/multisafepay/magento2-core/Gateway/Http/Client/GenericGatewayRefundClient.php:62 Stack trace: #0 /data/web/magento2/vendor/magento/module-payment/Gateway/Command/GatewayCommand.php(106): MultiSafepay\ConnectCore\Gateway\Http\Client\GenericGatewayRefundClient->placeRequest() #1 /data/web/magento2/vendor/multisafepay/magento2-core/Model/Method/GenericAdapter.php(527): Magento\Payment\Gateway\Command\GatewayCommand->execute() #2 /data/web/magento2/vendor/multisafepay/magento2-core/Model/Method/GenericAdapter.php(451): MultiSafepay\ConnectCore\Model\Method\GenericAdapter->executeCommand() #3 /data/web/magento2/vendor/magento/module-sales/Model/Order/Payment.php(699): MultiSafepay\ConnectCore\Model\Method\GenericAdapter->refund() #4 /data/web/magento2/generated/code/Magento/Sales/Model/Order/Payment/Interceptor.php(221): Magento\Sales\Model\Order\Payment->refund() #5 /data/web/magento2/vendor/magento/module-sales/Model/Order/Creditmemo/RefundOperation.php(118): Magento\Sales\Model\Order\Payment\Interceptor->refund() #6 /data/web/magento2/vendor/magento/module-sales/Model/Order/RefundAdapter.php(39): Magento\Sales\Model\Order\Creditmemo\RefundOperation->execute() #7 /data/web/magento2/vendor/magento/module-sales/Model/Service/CreditmemoService.php(167): Magento\Sales\Model\Order\RefundAdapter->refund() #8 /data/web/magento2/vendor/magento/module-sales/Controller/Adminhtml/Order/Creditmemo/Save.php(119): Magento\Sales\Model\Service\CreditmemoService->refund() #9 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save->execute() #10 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->___callParent() #11 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->Magento\Framework\Interception\{closure}() #12 /data/web/magento2/generated/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save/Interceptor.php(23): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->___callPlugins() #13 /data/web/magento2/vendor/magento/framework/App/Action/Action.php(111): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->execute() #14 /data/web/magento2/vendor/magento/module-backend/App/AbstractAction.php(151): Magento\Framework\App\Action\Action->dispatch() #15 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Backend\App\AbstractAction->dispatch() #16 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->___callParent() #17 /data/web/magento2/vendor/magento/module-backend/App/Action/Plugin/Authentication.php(145): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->Magento\Framework\Interception\{closure}() #18 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch() #19 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->Magento\Framework\Interception\{closure}() #20 /data/web/magento2/generated/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save/Interceptor.php(32): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->___callPlugins() #21 /data/web/magento2/vendor/magento/framework/App/FrontController.php(245): Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save\Interceptor->dispatch() #22 /data/web/magento2/vendor/magento/framework/App/FrontController.php(212): Magento\Framework\App\FrontController->getActionResponse() #23 /data/web/magento2/vendor/magento/framework/App/FrontController.php(147): Magento\Framework\App\FrontController->processRequest() #24 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch() #25 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent() #26 /data/web/magento2/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() #27 /data/web/magento2/generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins() #28 /data/web/magento2/vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch() #29 /data/web/magento2/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch() #30 /data/web/magento2/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch() #31 /data/web/magento2/pub/index.php(89): Magento\Framework\App\Bootstrap->run() #32 {main} [] []
Describe the bug
Pressing validate API key always yields a check for store id = 0 instead of the storeview of the current selected scope
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The API key is shown as valid
Cause
https://github.com/MultiSafepay/magento2-adminhtml/blob/master/Controller/Adminhtml/Api/Validate.php#L87 is using a store_id
parameter, but that parameter is not passed here:
https://github.com/MultiSafepay/magento2-adminhtml/blob/master/Block/Adminhtml/Config/ValidateApiKeyButton.php#L72
Describe the bug
When customers as guest return during checkout without a successful payment, we see that various payment methods are no longer visible at the checkout. Payment methods that are available for all customer groups will remain visible, but payment methods for specific customer groups will no longer be visible.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Payment methods that are visible for guests are still visible the second time.
Desktop (please complete the following information):
OS: iOS
Browser: Chrome
Version: 109.0.5414.87
Magento version: 2.4.4-p2
PHP: 8.1
MultiSafepay version: 2.22.0
Additional context
There is a difference inside \MultiSafepay\ConnectCore\Gateway\Validator\CustomerGroupValidator::validate
when visiting the checkout for the second time. The value from $quote->getCustomerGroupId()
is different.
First time visiting the checkout I see that the quote field 'customer_group_id' = '0'. But the second time the value is different ('customer_group_id' = 'null).
Describe the bug
Due to line wrapping, there are now multiple spaces/tabs in translatable strings, causing the translation to fail. Following is one example, but there could be more
To Reproduce
See for example vendor/multisafepay/magento2-core/Observer/OrderPlaceAfterObserver.php
:
Expected behavior
A correctly translatable string
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
N/A
Describe the bug
Request "multisafepay/connect/notification" is returning 302 error
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Order would pass to processing status
Desktop (please complete the following information):
Magento version: 2.3.7
MultiSafepay version: 2.10.1
If a order is created or edited via the admin the "Payment link for this transaction" that is made does not specify the store front in the "multisafepay/connect/notificatio" url for the successful payment notification.
Back-end order:
https://test.com/multisafepay/connect/notification?transactionid=000000207×tamp=1624972999
front-end order:
https://test.com/nl/multisafepay/connect/notification?transactionid=000000199×tamp=1624891497
When an order is placed with cart items the tax is rounded different in Magento / Multisafepay. The totals do not sum up. When this occurs the invoice is not created in Magento.
I suspect this is because we have 9% and 21% items in one order. This only happens for a few specific amounts where the rounding is one cent off.
Steps to reproduce the behavior:
Expected behavior
The right amount is sent to Multisafepay for the cart items.
Screenshots
Right amount in Magento (15.85):
Wrong amount in Multisafepay (15.84):
Additional context
I am using Magento 2.4.1 with Multisafepay module 2.11.0. We have had this problem with the missing invoices for a while but I just discovered the rounding difference with the cart items being sent to Multisafepay.
EDIT: I just tested MSP module 2.12.4 - same problem
Describe the bug
We have a Magento 2.4.3 with 2 stores. One where we do use multisafepay and one that is for B2B that should not have these payments available. Version used Multisafepay 2.21.1
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No mutlisafepay payment methods in second store...
Screenshots
If applicable, add screenshots to help explain your problem.
The above should not be visible.
Magento 2.4.3 (both p1 and p2) tested with Multisafepay 2.21.1 (will test with 2.22)
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Since this store is quite new to me I'm still investigating if there have been alterations in checkout that could cause this behavior (so far I have found none). But mainly I would expect some enable disable setting maybe so you can have it working for one store and not for the other.
A customer is experiencing an issue where for some orders the order status does not get switched to processing after an order is paid, but stays on pending. Setting the order states in the MSP config does not make a difference.
Magento 2.3.6 with:
"multisafepay/magento2-core": "^2.0",
"multisafepay/magento2-frontend": "^1.1",
"multisafepay/magento2-catalog-inventory": "^1.0",
"multisafepay/magento2-adminhtml": "^1.1"
Comparing two orders where the status has been changed / not changed, the multisafepay log does not show any difference. Is this a known issue that has been fixed in later versions? Because I have updated the modules, but I am encountering a different (and with more impact) issue there, which I will post in a separate issue.
Describe the bug
Order confirmation gateway override setting "After paid transaction" is ignored if the default is set to after transaction
To Reproduce
Steps to reproduce the behavior:
Service/OrderService.php
:
if (in_array($transactionStatus, [
TransactionStatus::COMPLETED,
TransactionStatus::INITIALIZED,
TransactionStatus::RESERVED,
TransactionStatus::SHIPPED,
], true)
&& $this->emailSender->sendOrderConfirmationEmail($order)) {
$this->logger->logInfoForOrder(
$orderId,
__('Order confirmation email after transaction has been sent')->render(),
Logger::DEBUG
);
}
After the order is placed it is pending payment with gateway status Initialised
$this->emailSender->sendOrderConfirmationEmail($order))
is called
Referenced to this file Service/EmailSender.php
$emailTypes = [
$this->config->getOrderConfirmationEmail()
];
The default setting after transaction is pushed in the array.
then if a gateway override is defined it also pushed in the same array here:
if ($this->gatewayConfig->getValue(Config::OVERRIDE_ORDER_CONFIRMATION_EMAIL)) {
$emailTypes[] = $this->gatewayConfig->getValue(Config::ORDER_CONFIRMATION_EMAIL) ?? '';
}
Then it checks if the order can be send here:
if (in_array($emailType, $emailTypes, true)) {
$this->orderSender->send($order);
return true;
}
An $emailType is not given in the Service/OrderService.php#L174
So after_transaction
is used as default for this check en its true in this case when the transaction is placed not paid.
In the log files it shows
[2022-10-11 08:28:23] MultiSafepay.INFO: (Order ID: #############): Payment URL is: https://payv2.multisafepay.com/connect/#############/?lang=nl_NL [] []
[2022-10-11 08:28:23] MultiSafepay.DEBUG: (Order ID: #############) User redirected to the following page: https://payv2.multisafepay.com/connect/#############/?lang=nl_NL [] []
[2022-10-11 08:28:26] MultiSafepay.DEBUG: (Order ID: #############): Order ID has been retrieved from the order [] []
[2022-10-11 08:28:26] MultiSafepay.DEBUG: (Order ID: #############): Transaction data was retrieved: {
"description": "Bestelling ##############",
"order_id": "#############",
[2022-10-11 08:28:27] MultiSafepay.DEBUG: (Order ID: #############): Order confirmation email after transaction has been sent [] []
Where the last line is 'Order confirmation email after transaction has been sent' not the one that needs to be logged is: 'Order confirmation email after paid transaction has been sent' in Service/Order/ProcessOrderByTransactionStatus.php#L197
Expected behavior
The override setting that is configured is used instead the default, so the email is send after the order is paid in this case.
The total on the Multisafepay page is incorrect because it does not take into account the additional fees introduced by the 3rd party module even if on the website the totals are calculated and displayed correctly.
The total as seen on the Multisafepay page:
Using multisafepay/magento2: 2.3.0 and prince/magento2-extrafeepro 1.0.7.
This was reproduced on a clean Magento 2.3.2 and on a Magento 2.3.6 that contains multiple modules.
Thank you!
After upgrading all MSP packages to their newest version I am running into the following error when trying to submit an order.
2021-04-02 08:25:46] MultiSafepay.ERROR: (Order ID: 1000071989) ERROR: Warning: Division by zero in /data/web/magento2/vendor/multisafepay/magento2-core/Model/Api/Builder/OrderRequestBuilder/ShoppingCartBuilder/CustomTotalBuilder.php on line 156 (code: 0, line: 61, file: /data/web/magento2/vendor/magento/framework/App/ErrorHandler.php)
Local dockerbox,
Magento 2.3.6
"multisafepay/magento2-core": "^2.5.0",
"multisafepay/magento2-frontend": "^1.6.0",
"multisafepay/magento2-catalog-inventory": "^1.0.2",
"multisafepay/magento2-adminhtml": "^1.6.0",
If needed I can run the file through xdebug, but some pointers on where to start would be helpful.
In our Magento 2 we can configur Payment gateways to only be visible for particular Custom groups, great! But in order to make them work properly we need to activate them in our merchant.multisafepay.com website settings. Great so far.
But if we create an order for a customer, select as payment method Multisafepay and send the customer the payment link. All payment methods are shown, also the methods we have assigned for a particular customer group. If we disable this, the function will not work in our shop anymore.
so is it possible to A. recognize the customergroup restriction from Magento to https://payv2.multisafepay.com/connect/ or B possible to disable payment methods on https://payv2.multisafepay.com/connect/ only.
i cant get second chance email for payment after i missed payment for order with testmultisafe account.
How can i auto send email after i missed order payment.. have any idea??
Is your feature request related to a problem? Please describe.
We installed a module that does some checks based on values on the order and then places that order on "On Hold". But when Multisafepay creates the invoice it moves the order to processing, ignoring the "On Hold" status.
Describe the solution you'd like
When an order is on "On Hold" the module notification endpoint should not update the product status.
Hey :)
I have a question. When doing a refund through magento order via rest/default/V1/order/{orderId}/refund
it seems like it does not create a refund for MultiSavepay.
If a refund is created through API, I want to automatically send a refund to MultiSavepay. Is that a configuration thing?
The docs do not specifically tell how this is handled (or I am just misunderstanding)
https://docs.multisafepay.com/docs/magento-2#refunds
Thank you for your time
I'm not sure if this is new since the latest .1 update, but I'm noticing these errors in our logs. Does this have to do with the public transaction validation perhaps?
We're running Magento 2.4.1, and 2.8.1 of your core MSP module.
Stack trace:
#0 /opt/magento/public_html/vendor/multisafepay/magento2-core/Service/OrderService.php(237): MultiSafepay\ConnectCore\Service\OrderService->canChangePaymentMethod()
#1 /opt/magento/public_html/vendor/multisafepay/magento2-frontend/Controller/Connect/Notification.php(92): MultiSafepay\ConnectCore\Service\OrderService->processOrderTransaction()
#2 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(58): MultiSafepay\ConnectFrontend\Controller\Connect\Notification->execute()
#3 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(138): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->___callParent()
#4 /opt/magento/public_html/vendor/magento/framework/App/Action/Plugin/ActionFlagNoDispatchPlugin.php(51): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->Magento\Framework\Interception\{closure}()
#5 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Framework\App\Action\Plugin\ActionFlagNoDispatchPlugin->aroundExecute()
#6 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(153): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->Magento\Framework\Interception\{closure}()
#7 /opt/magento/public_html/generated/code/MultiSafepay/ConnectFrontend/Controller/Connect/Notification/Interceptor.php(23): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->___callPlugins()
#8 /opt/magento/public_html/vendor/magento/framework/App/Action/Action.php(111): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->execute()
#9 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\Action\Action->dispatch()
#10 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(138): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->___callParent()
#11 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(153): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->Magento\Framework\Interception\{closure}()
#12 /opt/magento/public_html/generated/code/MultiSafepay/ConnectFrontend/Controller/Connect/Notification/Interceptor.php(32): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->___callPlugins()
#13 /opt/magento/public_html/vendor/magento/framework/App/FrontController.php(186): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->dispatch()
#14 /opt/magento/public_html/vendor/magento/framework/App/FrontController.php(118): Magento\Framework\App\FrontController->processRequest()
#15 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch()
#16 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent()
#17 /opt/magento/public_html/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(99): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}()
#18 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch()
#19 /opt/magento/public_html/vendor/mirasvit/module-cache-warmer/src/CacheWarmer/Plugin/Debug/OnHitPlugin.php(140): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}()
#20 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(135): Mirasvit\CacheWarmer\Plugin\Debug\OnHitPlugin->aroundAroundDispatch()
#21 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\PageCache\Model\App\FrontController\BuiltinPlugin\Interceptor->Magento\Framework\Interception\{closure}()
#22 /opt/magento/public_html/generated/code/Magento/PageCache/Model/App/FrontController/BuiltinPlugin/Interceptor.php(23): Magento\PageCache\Model\App\FrontController\BuiltinPlugin\Interceptor->___callPlugins()
#23 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(135): Magento\PageCache\Model\App\FrontController\BuiltinPlugin\Interceptor->aroundDispatch()
#24 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}()
#25 /opt/magento/public_html/generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins()
#26 /opt/magento/public_html/vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch()
#27 /opt/magento/public_html/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch()
#28 /opt/magento/public_html/vendor/magento/framework/App/Bootstrap.php(263): Magento\Framework\App\Http\Interceptor->launch()
#29 /opt/magento/public_html/pub/index.php(40): Magento\Framework\App\Bootstrap->run()
#30 {main} [] []
[2021-05-27 07:18:16] main.CRITICAL: TypeError: Argument 2 passed to MultiSafepay\ConnectCore\Service\OrderService::canChangePaymentMethod() must be of the type string, null given, called in /opt/magento/public_html/vendor/multisafepay/magento2-core/Service/OrderService.php on line 237 and defined in /opt/magento/public_html/vendor/multisafepay/magento2-core/Service/OrderService.php:304
Stack trace:
#0 /opt/magento/public_html/vendor/multisafepay/magento2-core/Service/OrderService.php(237): MultiSafepay\ConnectCore\Service\OrderService->canChangePaymentMethod()
#1 /opt/magento/public_html/vendor/multisafepay/magento2-frontend/Controller/Connect/Notification.php(92): MultiSafepay\ConnectCore\Service\OrderService->processOrderTransaction()
#2 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(58): MultiSafepay\ConnectFrontend\Controller\Connect\Notification->execute()
#3 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(138): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->___callParent()
#4 /opt/magento/public_html/vendor/magento/framework/App/Action/Plugin/ActionFlagNoDispatchPlugin.php(51): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->Magento\Framework\Interception\{closure}()
#5 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Framework\App\Action\Plugin\ActionFlagNoDispatchPlugin->aroundExecute()
#6 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(153): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->Magento\Framework\Interception\{closure}()
#7 /opt/magento/public_html/generated/code/MultiSafepay/ConnectFrontend/Controller/Connect/Notification/Interceptor.php(23): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->___callPlugins()
#8 /opt/magento/public_html/vendor/magento/framework/App/Action/Action.php(111): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->execute()
#9 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\Action\Action->dispatch()
#10 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(138): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->___callParent()
#11 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(153): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->Magento\Framework\Interception\{closure}()
#12 /opt/magento/public_html/generated/code/MultiSafepay/ConnectFrontend/Controller/Connect/Notification/Interceptor.php(32): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->___callPlugins()
#13 /opt/magento/public_html/vendor/magento/framework/App/FrontController.php(186): MultiSafepay\ConnectFrontend\Controller\Connect\Notification\Interceptor->dispatch()
#14 /opt/magento/public_html/vendor/magento/framework/App/FrontController.php(118): Magento\Framework\App\FrontController->processRequest()
#15 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch()
#16 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent()
#17 /opt/magento/public_html/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(99): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}()
#18 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch()
#19 /opt/magento/public_html/vendor/mirasvit/module-cache-warmer/src/CacheWarmer/Plugin/Debug/OnHitPlugin.php(140): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}()
#20 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(135): Mirasvit\CacheWarmer\Plugin\Debug\OnHitPlugin->aroundAroundDispatch()
#21 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\PageCache\Model\App\FrontController\BuiltinPlugin\Interceptor->Magento\Framework\Interception\{closure}()
#22 /opt/magento/public_html/generated/code/Magento/PageCache/Model/App/FrontController/BuiltinPlugin/Interceptor.php(23): Magento\PageCache\Model\App\FrontController\BuiltinPlugin\Interceptor->___callPlugins()
#23 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(135): Magento\PageCache\Model\App\FrontController\BuiltinPlugin\Interceptor->aroundDispatch()
#24 /opt/magento/public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}()
#25 /opt/magento/public_html/generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins()
#26 /opt/magento/public_html/vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch()
#27 /opt/magento/public_html/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch()
#28 /opt/magento/public_html/vendor/magento/framework/App/Bootstrap.php(263): Magento\Framework\App\Http\Interceptor->launch()
#29 /opt/magento/public_html/pub/index.php(40): Magento\Framework\App\Bootstrap->run()
#30 {main} [] []
Describe the bug
Magento 2.4.3-p1
A magento upgrade with composer require multisafepay/magento2-core
resulted in this error. No further configuration, just module install, added a product to cart and try to navigate to cart.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Cart is shown
Screenshots
(output of module yireo/magento2-whoops)
Desktop (please complete the following information):
Additional context
if ($ids = $this->getPaymentConfig($storeId)[$couponCode . '_categories']) {
probably does not check for undefined indexes, wrapping it in isset() before defining $ids
will do the trick.
When I create an order as a user it doesn't send a confirmation email. Looked through the code but couldn't find a cause. Maybe I'm doing something wrong?
Steps to reproduce :
Error :
Message : "Totaalbedrag van de winkelwagen moet gelijk zijn aan het bedrag van de transactie"
Reason: The sum of the amounts in the shopping cart do not match the amount in the request, because of the discount.
Request and response :
{ "type": "redirect", "order_id": "22006683429", "recurring_id": "", "currency": "EUR", "amount": 3159, "description": "", "var1": "", "var2": "", "var3": "", "items": "", "manual": "false", "gateway": "KLARNA", "days_active": "30", "seconds_active": "", "second_chance": { "send_email": true }, "payment_options": { }, "customer": { }, "delivery": { }, "plugin": { "shop": "Magento 2.3.5-p2 Enterprise", "shop_version": "2.3.5-p2", "plugin_version": " - Plugin 1.14.1", "partner": "MultiSafepay" }, "gateway_info": { "issuer_id": null }, "shopping_cart": { "items": [ { "name": "Guarana", "description": null, "unit_price": 14.9541284404, "quantity": "1", "merchant_item_id": "999803", "tax_table_selector": "9.0000", "weight": { "unit": "KG", "value": "0.0420" } }, { "name": "Gymnema sylvestre", "description": null, "unit_price": 16.9541284404, "quantity": "1", "merchant_item_id": "999806", "tax_table_selector": "9.0000", "weight": { "unit": "KG", "value": "0.0400" } }, { "name": "Verzenden via PostNL", "description": "Shipping", "unit_price": 0, "quantity": "1", "merchant_item_id": "msp-shipping", "tax_table_selector": "0.00", "weight": { "unit": "KG", "value": "0" } } ] }, "checkout_options": { "tax_tables": { "alternate": [ { "standalone": "true", "name": "9.0000", "rules": [ { "rate": 0.09 } ] }, { "standalone": "true", "name": "9.0000", "rules": [ { "rate": 0.09 } ] }, { "standalone": "true", "name": "0.00", "rules": [ { "rate": "0.00" } ] } ] } }, "payment_data": { "payload": null } } { "success": false, "data": {}, "error_code": 1027, "error_info": "Totaalbedrag van de winkelwagen moet gelijk zijn aan het bedrag van de transactie" }
Describe the bug
Sometimes the checkout gives an error. This is the stack trace. We used the latest version 2.21.0
and Magento 2.4.4-2 with PHP 8.
It looks like the error is coming from the new payment method getIssuersByGatewayCode('mybank')
but the method is disabled. Maybe the request to MSP gives sometimes no data for this method. It looks like it started at 22 oct.
[2022-10-23T11:39:30.586134+00:00] main.CRITICAL: TypeError: MultiSafepay\Api\Issuers\IssuerListing::getIssuers(): Return value must be of type array, null returned in /var/domains/domein.nl/releases/20221021081130/vendor/multisafepay/php-sdk/src/Api/Issuers/IssuerListing.php:34
Stack trace:
#0 /var/domains/domein.nl/releases/20221021081130/vendor/multisafepay/php-sdk/src/Api/IssuerManager.php(33): MultiSafepay\Api\Issuers\IssuerListing->getIssuers()
#1 /var/domains/domein.nl/releases/20221021081130/vendor/multisafepay/magento2-core/Model/Ui/GenericConfigProvider.php(324): MultiSafepay\Api\IssuerManager->getIssuersByGatewayCode('mybank')
#2 /var/domains/domein.nl/releases/20221021081130/vendor/multisafepay/magento2-core/Model/Ui/Gateway/MyBankConfigProvider.php(40): MultiSafepay\ConnectCore\Model\Ui\GenericConfigProvider->getIssuers()
#3 /var/domains/domein.nl/releases/20221021081130/vendor/multisafepay/magento2-frontend/Plugin/Checkout/Model/CompositeConfigProvider.php(51): MultiSafepay\ConnectCore\Model\Ui\Gateway\MyBankConfigProvider->getConfig()
#4 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(146): MultiSafepay\ConnectFrontend\Plugin\Checkout\Model\CompositeConfigProvider->afterGetConfig(Object(Magento\Checkout\Model\CompositeConfigProvider\Interceptor), Array)
#5 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Checkout\Model\CompositeConfigProvider\Interceptor->Magento\Framework\Interception\{closure}()
#6 /var/domains/domein.nl/releases/20221021081130/generated/code/Magento/Checkout/Model/CompositeConfigProvider/Interceptor.php(23): Magento\Checkout\Model\CompositeConfigProvider\Interceptor->___callPlugins('getConfig', Array, Array)
#7 /var/domains/domein.nl/releases/20221021081130/vendor/magento/module-checkout/Block/Onepage.php(106): Magento\Checkout\Model\CompositeConfigProvider\Interceptor->getConfig()
#8 /var/domains/domein.nl/releases/20221021081130/vendor/magento/module-checkout/Block/Onepage.php(128): Magento\Checkout\Block\Onepage->getCheckoutConfig()
#9 /var/domains/domein.nl/releases/20221021081130/var/view_preprocessed/pub/static/vendor/magento/module-checkout/view/frontend/templates/onepage.phtml(6): Magento\Checkout\Block\Onepage->getSerializedCheckoutConfig()
#10 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/TemplateEngine/Php.php(71): include('/var/domains/mi...')
#11 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\TemplateEngine\Php->render(Object(Magento\Checkout\Block\Onepage), '/var/domains/mi...', Array)
#12 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent('render', Array)
#13 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Checkout\Block\Onepage), '/var/domains/mi...', Array)
#14 /var/domains/domein.nl/releases/20221021081130/generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php(23): Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins('render', Array, Array)
#15 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Element/Template.php(263): Magento\Framework\View\TemplateEngine\Php\Interceptor->render(Object(Magento\Checkout\Block\Onepage), '/var/domains/mi...', Array)
#16 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Element/Template.php(293): Magento\Framework\View\Element\Template->fetchView('/var/domains/mi...')
#17 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Element/AbstractBlock.php(1095): Magento\Framework\View\Element\Template->_toHtml()
#18 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Element/AbstractBlock.php(1099): Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}()
#19 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Element/AbstractBlock.php(660): Magento\Framework\View\Element\AbstractBlock->_loadCache()
#20 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(578): Magento\Framework\View\Element\AbstractBlock->toHtml()
#21 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(555): Magento\Framework\View\Layout->_renderBlock('checkout.root')
#22 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('checkout.root')
#23 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('checkout.root', false)
#24 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('content', false)
#25 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('content')
#26 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('content', false)
#27 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('main', false)
#28 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('main')
#29 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('main', false)
#30 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('columns', false)
#31 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('columns')
#32 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('columns', false)
#33 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('main.content', false)
#34 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('main.content')
#35 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('main.content', false)
#36 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('page.wrapper', false)
#37 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('page.wrapper')
#38 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('page.wrapper', false)
#39 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('root', false)
#40 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('root')
#41 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Layout.php(975): Magento\Framework\View\Layout->renderElement('root')
#42 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\Layout->getOutput()
#43 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\Layout\Interceptor->___callParent('getOutput', Array)
#44 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}()
#45 /var/domains/domein.nl/releases/20221021081130/generated/code/Magento/Framework/View/Layout/Interceptor.php(41): Magento\Framework\View\Layout\Interceptor->___callPlugins('getOutput', Array, Array)
#46 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Result/Page.php(260): Magento\Framework\View\Layout\Interceptor->getOutput()
#47 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/View/Result/Layout.php(171): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor))
#48 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#49 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\Result\Page\Interceptor->___callParent('renderResult', Array)
#50 /var/domains/domein.nl/releases/20221021081130/app/code/Magezon/Core/Plugin/View/Result/Layout.php(24): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#51 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(135): Magezon\Core\Plugin\View\Result\Layout->aroundRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Closure), Object(Magento\Framework\App\Response\Http\Interceptor))
#52 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#53 /var/domains/domein.nl/releases/20221021081130/generated/code/Magento/Framework/View/Result/Page/Interceptor.php(23): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, NULL)
#54 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/App/Http.php(120): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#55 /var/domains/domein.nl/releases/20221021081130/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http->launch()
#56 /var/domains/domein.nl/releases/20221021081130/pub/index.php(30): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#57 {main} [] []
Dear
When I run the composer require of the metapackage, I encounter an issue with Magento 2.4.5 with PHP 8.1 :
composer require multisafepay/magento2
./composer.json has been updated
Running composer update multisafepay/magento2
Loading composer repositories with package information
In Laminas\DependencyPlugin\DependencyRewriterV2::onPrePoolCreate
Updating dependencies
Your requirements could not be resolved to an installable set of packages.Problem 1
- multisafepay/magento2-core 1.0.0 requires php-http/guzzle6-adapter * -> satisfiable by php-http/guzzle6-adapter[v0.1.0, ..., v0.4.1, v1.0.0, v1.1.0, v1.1.1, v2.0.0, v2.0.1, v2.0.2].
- multisafepay/magento2[2.1.0, ..., 2.22.0] require multisafepay/magento2-msi 1.0.1 -> satisfiable by multisafepay/magento2-msi[1.0.1].
- php-http/guzzle6-adapter v0.1.0 requires guzzlehttp/guzzle ~6.0 -> found guzzlehttp/guzzle[6.0.0, ..., 6.5.8] but it conflicts with your root composer.json require (^7.4.2).
- php-http/guzzle6-adapter v0.2.0 requires php-http/httplug 1.0.0-alpha3 -> found php-http/httplug[v1.0.0-alpha3] but it does not match your minimum-stability.
- php-http/guzzle6-adapter[v0.2.1, ..., v0.3.1] require php-http/httplug 1.0.0-beta -> found php-http/httplug[v1.0.0-beta] but it does not match your minimum-stability.
- php-http/guzzle6-adapter[v0.4.0, ..., v0.4.1, v1.0.0, ..., v1.1.1, v2.0.0, ..., v2.0.2] require guzzlehttp/guzzle ^6.0 -> found guzzlehttp/guzzle[6.0.0, ..., 6.5.8] but it conflicts with your root composer.json require (^7.4.2).
- multisafepay/magento2-msi 1.0.1 requires magento/module-inventory-sales-api ^1.0 -> could not be found in any version, there may be a typo in the package name.
- multisafepay/magento2 2.0.0 requires multisafepay/magento2-core 1.0.0 -> satisfiable by multisafepay/magento2-core[1.0.0].
- Root composer.json requires multisafepay/magento2 * -> satisfiable by multisafepay/magento2[2.0.0, ..., 2.22.0].
As the magento/module-inventory-sales-api does'nt exist in this version, the process is stopped.
Any idea how to fix it ?
Regards
Describe the bug
All amounts stay open even after successful direct payments.
Status is Processing but the amount is "Due".
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The amount open should be Zero after a direct payment.
Additional context
Magento 2.4.3-p2
MSP 2.17.0 and before
All payment types.
Describe the bug
Requirement php-http/guzzle6-adapter
of subpackage multisafepay/magento2-core
is incompatible with magento 2.4.4
On composer require magento/product-enterprise-edition:2.4.4
we get the errors php-http/guzzle6-adapter v2.0.2 requires guzzlehttp/guzzle ^6.0
.
The package multisafepay/magento2-core
is using php-http/guzzle6-adapter
which in turn requires guzzlehttp/guzzle ^6.0
. Except Magento requires version 7, see magento/product-community-edition 2.4.4 requires guzzlehttp/guzzle ^7.3.0
.
To Reproduce
Steps to reproduce the behavior:
composer require magento/product-enterprise-edition:2.4.4
or composer require magento/product-community-edition:2.4.4
(but community isn't released at the moment, try using the released enterprise instead)Expected behavior
Magento is installed.
( I could not check PHP 8.1 compatible )
Screenshots
Composer require output.
[...]
Your requirements could not be resolved to an installable set of packages.
Problem 1
- multisafepay/magento2 2.7.0 requires multisafepay/magento2-core 2.5.1 -> satisfiable by multisafepay/magento2-core[2.5.1].
- multisafepay/magento2 2.7.0 requires multisafepay/magento2-core 2.5.1 -> satisfiable by multisafepay/magento2-core[2.5.1].
- multisafepay/magento2 2.7.1 requires multisafepay/magento2-core 2.5.2 -> satisfiable by multisafepay/magento2-core[2.5.2].
- multisafepay/magento2 2.7.1 requires multisafepay/magento2-core 2.5.2 -> satisfiable by multisafepay/magento2-core[2.5.2].
[...]
- php-http/guzzle6-adapter v2.0.0 requires php ^7.1 -> your PHP version (8.1.4) does not satisfy that requirement.
- php-http/guzzle6-adapter v0.3.1 requires php-http/httplug 1.0.0-beta -> satisfiable by php-http/httplug[v1.0.0-beta] but these conflict with your requirements or minimum-stability.
- php-http/guzzle6-adapter v0.3.0 requires php-http/httplug 1.0.0-beta -> satisfiable by php-http/httplug[v1.0.0-beta] but these conflict with your requirements or minimum-stability.
- php-http/guzzle6-adapter v0.2.1 requires php-http/httplug 1.0.0-beta -> satisfiable by php-http/httplug[v1.0.0-beta] but these conflict with your requirements or minimum-stability.
- php-http/guzzle6-adapter v0.2.0 requires php-http/httplug 1.0.0-alpha3 -> satisfiable by php-http/httplug[v1.0.0-alpha3] but these conflict with your requirements or minimum-stability.
- Conclusion: remove guzzlehttp/guzzle 7.4.2
- Conclusion: don't install guzzlehttp/guzzle 7.4.2
- Conclusion: remove magento/product-enterprise-edition 2.4.4
- Conclusion: don't install guzzlehttp/guzzle 7.4.1
- Conclusion: don't install guzzlehttp/guzzle 7.4.0
- Conclusion: don't install guzzlehttp/guzzle 7.3.0
- Conclusion: don't install guzzlehttp/guzzle 7.4.2
- Conclusion: don't install guzzlehttp/guzzle 6.5.4
- Conclusion: don't install guzzlehttp/guzzle 7.4.1
- magento/product-community-edition 2.4.4 requires guzzlehttp/guzzle ^7.3.0 -> satisfiable by guzzlehttp/guzzle[7.4.2, 7.3.0, 7.4.0, 7.4.1].
- Conclusion: don't install guzzlehttp/guzzle 7.4.0
Additional context
Please check https://github.com/php-http/guzzle7-adapter, looks like a drop-in replacement but requires PHP up to ^8.0 instead up to ^8.1 .
Describe the bug
When you set a ideal issuer_id and then place order the issuer_id gets removed. The reason for this is that Magento has decided to change the logic for the GraphQl endpoint to always include the payment data and this resets the additional_data which removes the issuer_id.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
You get a link to the issuers page to handle the payment there.
Actual behavior
You get a link to MSP where you have to select an issuer.
Additional context
Cause of the issue is the $this->cartManagement->placeOrder($cartId, $this->paymentMethodManagement->get($cartId));
line in the Magento/QuoteGraphQl/Model/Resolver/PlaceOrder
class. In older versions the $this->paymentMethodManagement->get($cartId)
doesn't exist.
Describe the bug
main.CRITICAL: TypeError: Argument 1 passed to MultiSafepay\ValueObject\Customer\Address::addCity() must be of the type string, null given, called in /vendor/multisafepay/magento2-core/Model/Api/Builder/OrderRequestBuilder/CustomerBuilder/AddressBuilder.php on line 60 and defined in /vendor/multisafepay/php-sdk/src/ValueObject/Customer/Address.php:110
To Reproduce
Cannot really determine when this happens. I think maybe City is not filled by clients because it's not mandatory?
Expected behavior
Give error message in checkout
Enviroment
Magento 2.4.5-p1
Multisafepay 2.21.1
Describe the bug
When checking out without a postal code, you are not being redirect to MSP because of notice while building the address
To Reproduce
Steps to reproduce the behavior:
Fix
See MultiSafepay/magento2-core#8
We are using multiple Multisafepay apikeys in our configuration. When a shipment or refund in the admin is created, the apikey passed is always the default configured one. When fetching an order created with a different Apikey, the API returns "Invalid transaction ID".
Therefore it is impossible to update orders at multisafepay or create a refund from within the admin.
For example when I emulate the store in \MultiSafepay\ConnectCore\Observer\addShippingToTransaction
before
$transactionManager = $this->sdkFactory->get()->getTransactionManager();
I can succesfully ship an order.
Describe the bug
On internet explorer the credit card component fails to render due to new JS syntax being used. While it might be the case that IE is not officially supported anymore (which I'd understand), in this case the fix is easy, and I created a PR with the fix: MultiSafepay/magento2-frontend#6
To Reproduce
Steps to reproduce the behavior:
Additional context
Add any other context about the problem here.
Describe the bug
This PR describes and solves it: MultiSafepay/magento2-frontend#8
To Reproduce
Expected behavior
No short-lived API tokens are fetched from MSP's API's
Describe the bug
Swagger is not working after multisafepay/magento2-core module is installed.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Swagger works properly.
Additional info
Seems swagger can not recognize return types which is not full path to class / interface.
In case full path is specified, swagger will work properly.
Extension info
Preconditions:
MSP - 2.3.0
Magento - 2.4.2
STR:
I haven't stable steps how to reproduce this bug. We faced it times by time in the next tables - sales_order_item, sales_order_payment we have miss data for fields - qty_invoiced, last_trans_id.
Point 1. Invoice was created order was paid, but qty_invoiced is 0
Point 2. In order comment transaction ID was set but after checking in the table this field was set as NULL
Describe the bug
Getting a javascript error in Mageplaza checkout when Afterpay is enabled as payment in checkout. According to your documentation https://docs.multisafepay.com/docs/magento-2 it should be compatible.
[ERROR] Failed to load the "MultiSafepay_ConnectFrontend/js/view/payment/gateway/method-renderer/afterpay" component.
The problem is caused by getting phonenumber of shippingAddress. Check file https://github.com/MultiSafepay/magento2-frontend/blob/master/view/frontend/web/js/view/payment/gateway/method-renderer/afterpay.js on row 62.
When I change row 54 to return quote.shippingAddress().telephone I have no problems.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I would expect that payment option Afterpay would be visible
Desktop (please complete the following information):
Additional context
Version 3.0.0 is not compatible with multisafepay/magento2-graphql
See: MultiSafepay/magento2-graphql#6
Problem 1
- multisafepay/magento2-graphql 3.2.0 requires multisafepay/magento2-frontend ^1.19 -> satisfiable by multisafepay/magento2-frontend[1.19.0].
- multisafepay/magento2-graphql 3.1.0 requires multisafepay/magento2-frontend ^1.18 -> satisfiable by multisafepay/magento2-frontend[1.18.0, 1.18.1, 1.18.2, 1.19.0].
- multisafepay/magento2-graphql 3.0.0 requires multisafepay/magento2-frontend ^1.17 -> satisfiable by multisafepay/magento2-frontend[1.17.0, ..., 1.19.0].
- You can only install one version of a package, so only one of these can be installed: multisafepay/magento2-frontend[1.17.0, ..., 1.19.0, 2.0.0].
- multisafepay/magento2 3.0.0 requires multisafepay/magento2-frontend 2.0.0 -> satisfiable by multisafepay/magento2-frontend[2.0.0].
- Root composer.json requires multisafepay/magento2 ^3.0 -> satisfiable by multisafepay/magento2[3.0.0].
- Root composer.json requires multisafepay/magento2-graphql ^3.0 -> satisfiable by multisafepay/magento2-graphql[3.0.0, 3.1.0, 3.2.0].
Using Magento 2.4.0 and multisafepay/magento2 2.2.1.
When creating an order via the backend, using a Magento delivery method, the following error occurs;
Order saving error: Type "" is not a known type. Available types: direct, redirect,paymentlink.
Describe the bug
Using:
I've found the following error report in var/report/api/{some-number}
:
"Fatal Error: 'Uncaught TypeError: Argument 1 passed to MultiSafepay\\ConnectCore\\Logger\\Logger::logPaymentLinkError() must be of the type string, null given, called in \/vendor\/multisafepay\/magento2-core\/Gateway\/Http\/Client\/RecurringClient.php on line 72 and defined in \/vendor\/multisafepay\/magento2-core\/Logger\/Logger.php:37
Stack trace:
#0 \/vendor\/multisafepay\/magento2-core\/Gateway\/Http\/Client\/RecurringClient.php(72): MultiSafepay\\ConnectCore\\Logger\\Logger->logPaymentLinkError(NULL, Object(MultiSafepay\\Exception\\ApiException))
#1 \/vendor\/magento\/module-payment\/Gateway\/Command\/GatewayCommand.php(106): MultiSafepay\\ConnectCore\\Gateway\\Http\\Client\\RecurringClient->placeRequest(Object(Magento\\Payment\\Gateway\\Http\\Transfer))
#2 \/vendor\/magento\/module-payment\/Gateway\/Command\/CommandManager.php(65): Magent' in '\/vendor\/multisafepay\/magento2-core\/Logger\/Logger.php' on line 37
Is there a known case where $orderId
could be null
over here? If there is a chance it can be null
, that code will probably have to be rewritten a little bit to be able to deal with that?
To Reproduce
Steps to reproduce the behavior:
var/report/api/{some-number}
Expected behavior
No errors
Screenshots
N/A
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
N/A
Describe the bug
In Test mode I just did two Ideal transactions with the testing status "complete".
I get redirected to the Success page and all seems fine.
In the order overview it actually seems that there has not been a valid payment.
The amount is still open and the status is "Pending Payment".
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
After a successful iDeal payment the order should have status "processing".
Desktop (please complete the following information):
Describe the bug
I have a product, which has a qty of 1000. When the customer wants to pay, everything seems normal. However, when looking at the invoice afterwards, it takes the base product price, and multiplies this again by its qty, so times a 1000. (It is a fixed price per 1000). When I try this at my staging enviroment with a test API key, I am even asked to pay this weird price at the Test Payment enviroment (The fixed price x the qty).
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the fixed price to be shown on the invoice.
Additional context
Add any other context about the problem here.
when i used this query
query{
multisafepayCart(cart_id:"kaDTle66fZjHrAjBxUnEA6NB8ep6hR3y"){
available_payment_methods{
title
}
}
}
this error show:
"The payment method you requested is not available"
Describe the bug
In Magento 2.4.4-2.4.5 because of a Magento bug when an order is placed the Customer Group is set to null
on a quote. If you restore a quote, because you canceled the order in MSP, payment methods might disappear because they can be set to only show for specific customer groups and null
will never match. This only affects 2.4.4 and 2.4.5, and is fixed in Magento 2.4.6.
To Reproduce
Steps to reproduce the behavior:
not logged in
Potential fix
If Customer Group 0 is in the allowed groups array also match on null. (Or suggest to people to upgrade to 2.4.6 but we all know this isn't always an option).
To Reproduce
Pending Payment Order Status
configuration to Pending Payment
.Pending Payment Order Lifetime (minutes)
to one minute.sales_clean_orders
.inventory_cleanup_reservations
.Expected behavior
Running cronjob inventory_cleanup_reservations
should now delete all order related reservations since order is complete. We should check if order placed reservations exist and add them if not when using second change payment.
Actual behavior
Running cronjob inventory_cleanup_reservations
won't delete the shipment reservations because order placed and order canceled reservations are already delete. We can now oversell this product.
Hi guys,
We installed the latest version of the module (2.1.0) and got the following error when going to the General Information page (admin/system_config/edit/section/multisafepay_support)
Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\Filesystem\DriverInterface in /project/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:50 Stack trace: #0 /project/vendor/magento/framework/ObjectManager/ObjectManager.php(70): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Framewo...') #1 /project/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(167): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Framewo...') #2 /project/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(273): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\\Framewo...', NULL, 'fileDriver', 'MultiSafepay\\Co...') #3 /project/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(236): Magento\Framework\ObjectManager\Factory\Abst in /project/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php on line 50
Module versions:
multisafepay/magento2 2.1.0 MultiSafepay module suite for Magento 2
multisafepay/magento2-adminhtml 1.1.0 MultiSafepay module for Magento 2 (backend-only)
multisafepay/magento2-catalog-inventory 1.0.1 MultiSafepay module for Magento 2 (only for deprecated Catalog Inventory)
multisafepay/magento2-core 2.0.0 MultiSafepay module for Magento 2
multisafepay/magento2-frontend 1.1.0 MultiSafepay module for Magento 2 (regular frontend)
multisafepay/magento2-msi 1.0.1 MultiSafepay module for Magento 2 (msi-only)
multisafepay/php-sdk 4.0.2 MultiSafepay PHP SDK
Magento Version: 2.3.5
Thanks in advance!
I see some functions are missing. When this functions will be added? Like;
Hi folks
Using:
pub
directoryWhen we go in the backend of the shop to the General Settings of the MultiSafepay module and click the "Download" button next to the "MultiSafepay payment logs" label. We get the following error:
1 exception(s):
Exception #0 (Exception): File not found
Exception #0 (Exception): File not found
<pre>#1 Magento\Backend\App\Response\Http\FileFactory->create() called at [vendor/multisafepay/magento2-core/Util/ZipUtil.php:118]
#2 MultiSafepay\ConnectCore\Util\ZipUtil->zipLogFiles() called at [vendor/multisafepay/magento2-adminhtml/Controller/Adminhtml/Download/MultiSafepayLog.php:53]
#3 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog->execute() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#4 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#5 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#6 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->___callPlugins() called at [generated/code/MultiSafepay/ConnectAdminhtml/Controller/Adminhtml/Download/MultiSafepayLog/Interceptor.php:26]
#7 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->execute() called at [vendor/magento/framework/App/Action/Action.php:108]
#8 Magento\Framework\App\Action\Action->dispatch() called at [vendor/magento/module-backend/App/AbstractAction.php:248]
#9 Magento\Backend\App\AbstractAction->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#10 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#11 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/module-backend/App/Action/Plugin/Authentication.php:143]
#12 Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch() called at [vendor/magento/framework/Interception/Interceptor.php:135]
#13 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#14 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->___callPlugins() called at [generated/code/MultiSafepay/ConnectAdminhtml/Controller/Adminhtml/Download/MultiSafepayLog/Interceptor.php:39]
#15 MultiSafepay\ConnectAdminhtml\Controller\Adminhtml\Download\MultiSafepayLog\Interceptor->dispatch() called at [vendor/magento/framework/App/FrontController.php:186]
#16 Magento\Framework\App\FrontController->processRequest() called at [vendor/magento/framework/App/FrontController.php:118]
#17 Magento\Framework\App\FrontController->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#18 Magento\Framework\App\FrontController\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#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:26]
#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:261]
#23 Magento\Framework\App\Bootstrap->run() called at [pub/index.php:40]
</pre>
After some debugging, it appears that the ZipArchive you are creating uses the path:
/path/to/webshop/pub/multisafepay_logs.zip
But when trying to send that file to the user, it tries to read from this path (so without the pub
directory) and then fails:
/path/to/webshop/multisafepay_logs.zip
Can this be confirmed and then fixed?
Also, I would suggest you use a more non-publicly accessible path like var
or var/tmp
in the Magento file structure, so that random visitors of the shop won't have the chance to download that file without authorization.
Thanks!
Describe the bug
I have access to the Magento 2.4.6-beta2 release and notice that the MultiSafepay module crashes when I try to login to the backoffice.
Error: Class "Zend_Http_Client" not found in /Users/pieterhoste/Projects/magento2/m23-demo/vendor/multisafepay/magento2-core/Util/VersionUtil.php:76
Stack trace:
#0 vendor/multisafepay/magento2-core/Util/NotificationUtil.php(73): MultiSafepay\ConnectCore\Util\VersionUtil->getNewVersionsDataIfExist()
#1 vendor/multisafepay/magento2-adminhtml/Observer/BackendAuthUserLoginSuccess.php(58): MultiSafepay\ConnectCore\Util\NotificationUtil->addNewReleaseNotification()
#2 vendor/magento/framework/Event/Invoker/InvokerDefault.php(88): MultiSafepay\ConnectAdminhtml\Observer\BackendAuthUserLoginSuccess->execute(Object(Magento\Framework\Event\Observer))
#3 vendor/magento/framework/Event/Invoker/InvokerDefault.php(74): Magento\Framework\Event\Invoker\InvokerDefault->_callObserverMethod(Object(MultiSafepay\ConnectAdminhtml\Observer\BackendAuthUserLoginSuccess), Object(Magento\Framework\Event\Observer))
#4 vendor/magento/framework/Event/Manager.php(65): Magento\Framework\Event\Invoker\InvokerDefault->dispatch(Array, Object(Magento\Framework\Event\Observer))
#5 generated/code/Magento/Framework/Event/Manager/Proxy.php(95): Magento\Framework\Event\Manager->dispatch('backend_auth_us...', Array)
#6 vendor/magento/module-backend/Model/Auth.php(169): Magento\Framework\Event\Manager\Proxy->dispatch('backend_auth_us...', Array)
#7 vendor/magento/framework/Interception/Interceptor.php(58): Magento\Backend\Model\Auth->login('xxx', 'yyy')
#8 vendor/magento/framework/Interception/Interceptor.php(138): Magento\Backend\Model\Auth\Interceptor->___callParent('login', Array)
#9 vendor/magento/module-admin-adobe-ims/Plugin/DisableAdminLoginAuthPlugin.php(56): Magento\Backend\Model\Auth\Interceptor->Magento\Framework\Interception\{closure}('xxx', 'yyy')
#10 vendor/magento/framework/Interception/Interceptor.php(135): Magento\AdminAdobeIms\Plugin\DisableAdminLoginAuthPlugin->aroundLogin(Object(Magento\Backend\Model\Auth\Interceptor), Object(Closure), 'xxx', 'yyy')
#11 vendor/magento/framework/Interception/Interceptor.php(153): Magento\Backend\Model\Auth\Interceptor->Magento\Framework\Interception\{closure}('xxx', 'yyy')
#12 generated/code/Magento/Backend/Model/Auth/Interceptor.php(59): Magento\Backend\Model\Auth\Interceptor->___callPlugins('login', Array, Array)
#13 vendor/magento/module-backend/App/Action/Plugin/Authentication.php(207): Magento\Backend\Model\Auth\Interceptor->login('xxx', 'yyy')
#14 vendor/magento/module-backend/App/Action/Plugin/Authentication.php(159): Magento\Backend\App\Action\Plugin\Authentication->_performLogin(Object(Magento\Framework\App\Request\Http))
#15 vendor/magento/module-backend/App/Action/Plugin/Authentication.php(127): Magento\Backend\App\Action\Plugin\Authentication->_processNotLoggedInUser(Object(Magento\Framework\App\Request\Http))
#16 vendor/magento/framework/Interception/Interceptor.php(135): Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch(Object(Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#17 vendor/magento/framework/Interception/Interceptor.php(153): Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#18 generated/code/Magento/Backend/Controller/Adminhtml/Index/Index/Interceptor.php(32): Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->___callPlugins('dispatch', Array, Array)
#19 vendor/magento/framework/App/FrontController.php(245): Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#20 vendor/magento/framework/App/FrontController.php(212): Magento\Framework\App\FrontController->getActionResponse(Object(Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor), Object(Magento\Framework\App\Request\Http))
#21 vendor/magento/framework/App/FrontController.php(147): Magento\Framework\App\FrontController->processRequest(Object(Magento\Framework\App\Request\Http), Object(Magento\Backend\Controller\Adminhtml\Index\Index\Interceptor))
#22 vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#23 vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#24 vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#25 generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#26 vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#27 generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch()
#28 vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch()
#29 pub/index.php(30): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#30 {main}
This is due to Magento getting rid of older Zend framework classes in 2.4.6.
See their Backwards Incompatible page for 2.4.6 (search for Zend_HTTP
)
Maybe you guys can already try to figure out a replacement of using Zend_HTTP that's backwards compatible with previous Magento versions.
To Reproduce
Steps to reproduce the behavior:
2.4-develop
branch of magento's githubExpected behavior
Backoffice works & MultiSafepay module as well
Screenshots
Additional context
Add any other context about the problem here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.