payu-emea / plugin_magento_24 Goto Github PK
View Code? Open in Web Editor NEWPlugin for Magento version 2.4
License: Apache License 2.0
Plugin for Magento version 2.4
License: Apache License 2.0
After placing the order, the screen freezes, an e-mail about payment is sent to the customer's, after refreshing the page, you can complete the order using another payment method
My magento ver. is 2.4.0, in this picture I veiled the address so that's not a problem.
I have one more question - is it possible to change the displayed payment methods? Currently (I tested in sandbox mode) regardless of the configuration in the "Payment Methods Order" field: (c, ma, vc, blik) or (c, ma, vc, blik, m, w, o, i, p, g, gbx, nlx, ib, l, ab, ps, wm, wc, bs, nstb, sgb, plsb, b) the same payment methods are displayed, if this is the case, it would be better to display the selection of payment methods on the payU website, not the store's website.
Podczas konfiguracji modułu istnieje możliwość włączenia/wyłączenia Payu Cards. Wyłączenie tej opcji płatności nie powoduje ukrycia sekcji "Moje zapisane karty" z panelu zalogowanego klienta.
Moja propozycja jest taka, aby zmodyfikować layout customer_account.xml
i wprowadzenie dodatkowego parametru do dodawanego blocku (customer-account-navigation-stored-cards-link
) ifconfig="payment/payu_gateway_card/main_parameters/active"
I have installed 1.0.8 and its not working. I'm getting error in both frontend and error log:
==> var/log/payugateway.log <==
[2021-11-10 05:34:06] payULogger.CRITICAL: ERROR_VALUE_INVALID - Invalid field value [] []
==> var/log/system.log <==
[2021-11-10 05:34:06] main.CRITICAL: Payment Error: Bramka płatnicza odrzuciła transakcję. [] []
[2021-11-10 05:34:07] main.CRITICAL: Placing an order with quote_id O7SckUaWrWxUBNcM18a8OvdNmSNs4blL is failed: Transakcja została odrzucona. Prosimy spróbować ponownie później. [] []
File Model/GetPayMethods.php line 90
if (isset($response->payByLinks)) {
change to if (!empty($response->payByLinks)) {
Hey!
I have a question about storing cards in PayU Sandbox. Is it possible?
We are using this module for our Magento project and I enabled storing cards data in payment option.
I used data for testing cards (from PayU Sandbox) and I am still getting Tokenization failed due to "400"
And I don't know what it means? Can you tell me where can I found some test cards to save it on sandbox or maybe tell me if it not possible to test this functionality on Sandbox?
I will be pleased for any answer.
EDIT: I used another config for test site in PayU Sandbox and I saved (probably) card where I was buying something in store. But now when I want to get this cards for client I am getting this error:
Oauth error: [code=400], [message=invalid_grant - Unauthorized grant type: trusted_merchant] [] []
Magento 2.4.4-p1 (php8.1)
When trying to open in backend Reports - Abandoned carts, there's a following error:
{"0":"Class \"PayU\\PaymentGateway\\Plugin\\Block\\Widget\\Button\\Toolbar\" does not exist","1":"#1 Magento\\Framework\\Code\\Reader\\ClassReader->getConstructor() called at [vendor\/magento\/framework\/ObjectManager\/Definition\/Runtime.php:54]\n#2 Magento\\Framework\\ObjectManager\\Definition\\Runtime->getParameters() called at [vendor\/magento\/framework\/ObjectManager\/Factory\/Compiled.php:100]\n#3 Magento\\Framework\\ObjectManager\\Factory\\Compiled->create() called at [vendor\/magento\/framework\/ObjectManager\/ObjectManager.php:70]\n#4 Magento\\Framework\\ObjectManager\\ObjectManager->get() called at [vendor\/magento\/framework\/Interception\/PluginList\/PluginList.php:174]\n#5 Magento\\Framework\\Interception\\PluginList\\PluginList->getPlugin() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:119]\n#6 Magento\\Backend\\Block\\Widget\\Button\\Toolbar\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#7 Magento\\Backend\\Block\\Widget\\Button\\Toolbar\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Backend\/Block\/Widget\/Button\/Toolbar\/Interceptor.php:22]\n#8 Magento\\Backend\\Block\\Widget\\Button\\Toolbar\\Interceptor->pushButtons() called at [vendor\/magento\/module-backend\/Block\/Widget\/Container.php:124]\n#9 Magento\\Backend\\Block\\Widget\\Container->_prepareLayout() called at [vendor\/magento\/module-backend\/Block\/Widget\/Grid\/Container.php:103]\n#10 Magento\\Backend\\Block\\Widget\\Grid\\Container->_prepareLayout() called at [vendor\/magento\/framework\/View\/Element\/AbstractBlock.php:272]\n#11 Magento\\Framework\\View\\Element\\AbstractBlock->setLayout() called at [vendor\/magento\/framework\/View\/Layout.php:781]\n#12 Magento\\Framework\\View\\Layout->createBlock() called at [vendor\/magento\/module-reports\/Controller\/Adminhtml\/Report\/Shopcart\/Abandoned.php:36]\n#13 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned->execute() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#14 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#15 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#16 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Reports\/Controller\/Adminhtml\/Report\/Shopcart\/Abandoned\/Interceptor.php:23]\n#17 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->execute() called at [vendor\/magento\/framework\/App\/Action\/Action.php:111]\n#18 Magento\\Framework\\App\\Action\\Action->dispatch() called at [vendor\/magento\/module-backend\/App\/AbstractAction.php:151]\n#19 Magento\\Backend\\App\\AbstractAction->dispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#20 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#21 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/module-backend\/App\/Action\/Plugin\/Authentication.php:145]\n#22 Magento\\Backend\\App\\Action\\Plugin\\Authentication->aroundDispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:135]\n#23 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#24 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Reports\/Controller\/Adminhtml\/Report\/Shopcart\/Abandoned\/Interceptor.php:32]\n#25 Magento\\Reports\\Controller\\Adminhtml\\Report\\Shopcart\\Abandoned\\Interceptor->dispatch() called at [vendor\/magento\/framework\/App\/FrontController.php:245]\n#26 Magento\\Framework\\App\\FrontController->getActionResponse() called at [vendor\/magento\/framework\/App\/FrontController.php:212]\n#27 Magento\\Framework\\App\\FrontController->processRequest() called at [vendor\/magento\/framework\/App\/FrontController.php:147]\n#28 Magento\\Framework\\App\\FrontController->dispatch() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:58]\n#29 Magento\\Framework\\App\\FrontController\\Interceptor->___callParent() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:138]\n#30 Magento\\Framework\\App\\FrontController\\Interceptor->Magento\\Framework\\Interception\\{closure}() called at [vendor\/magento\/framework\/Interception\/Interceptor.php:153]\n#31 Magento\\Framework\\App\\FrontController\\Interceptor->___callPlugins() called at [generated\/code\/Magento\/Framework\/App\/FrontController\/Interceptor.php:23]\n#32 Magento\\Framework\\App\\FrontController\\Interceptor->dispatch() called at [vendor\/magento\/framework\/App\/Http.php:116]\n#33 Magento\\Framework\\App\\Http->launch() called at [vendor\/magento\/framework\/App\/Bootstrap.php:264]\n#34 Magento\\Framework\\App\\Bootstrap->run() called at [pub\/index.php:30]\n","url":"\/admin_111111\/reports\/report_shopcart\/abandoned\/key\/42a9ea0d94a8ce724cbba2f17db9b35246a33abbecdfb19d2d27fb62460e33e5\/","script_name":"\/admin_111111\/reports\/report_shopcart\/abandoned\/key\/42a9ea0d94a8ce724cbba2f17db9b35246a33abbecdfb19d2d27fb62460e33e5\/","report_id":"325a6f85390b8ec4f5a6c2f56cca324b7ecd209a5c53af5a2689e02ae8414fd4"}
Also Store - Order Status page is affected as it opened as empty page. After disabling extension, all came back to normal.
Given:
Issue:
Critical error gets logged when cart is loaded in all websites/stores where PayU is not enabled
Expected result:
No error is logged, as PayU is disabled
Affected code line:
https://github.com/PayU-EMEA/plugin_magento_24/blob/master/lib/OpenPayU/AuthType/Basic.php#L14
Versions:
I have got this error:
`Your requirements could not be resolved to an installable set of packages.
Problem 1
- payu/magento24-payment-gateway 1.0.1 requires magento/module-sales 103.0.* -> no matching package found.
- payu/magento24-payment-gateway 1.0.0 requires magento/module-sales 103.0.* -> no matching package found.
- Installation request for payu/magento24-payment-gateway ^1.0 -> satisfiable by payu/magento24-payment-gateway[1.0.0, 1.0.1].
Potential causes:
Read https://getcomposer.org/doc/articles/troubleshooting.md for further common problems.
Installation failed, reverting ./composer.json to its original content.
`
Hello,
I have detected a problem with the re-payment functionality in this version of the module.
The bug was detected on magento 2.4.2 with many other modules. To be sure, I also checked on the pure magento 2.4.3 website only with your module and the mageplaza SMTP module.
Everything is fine on the magento 2.3.5p2 with your plugin_magento_23 module.
There is an exception when clicking on the link to re-payment in the e-mail message.
I noticed that the link does not contain order_id even though the generating method in the template should put it there
https://example.com/sales/order/repayview/hash/06a92f5bbb8cb7836d526b43496b1f33/
When I click on the link I get the following error:
1 exception(s): Exception #0 (Magento\Framework\Exception\InputException): An ID is needed. Set the ID and try again. #1 Magento\Sales\Model\OrderRepository\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #2 Magento\Sales\Model\OrderRepository\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #3 Magento\Sales\Model\OrderRepository\Interceptor->___callPlugins() called at [generated/code/Magento/Sales/Model/OrderRepository/Interceptor.php:23] #4 Magento\Sales\Model\OrderRepository\Interceptor->get() called at [vendor/payu/magento24-payment-gateway/Model/RepaymentResolver.php:45] #5 PayU\PaymentGateway\Model\RepaymentResolver->isRepayment() called at [vendor/payu/magento24-payment-gateway/Controller/Order/RepayView.php:45] #6 PayU\PaymentGateway\Controller\Order\RepayView->execute() called at [vendor/magento/framework/Interception/Interceptor.php:58] #7 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #8 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/App/Action/Plugin/ActionFlagNoDispatchPlugin.php:51] #9 Magento\Framework\App\Action\Plugin\ActionFlagNoDispatchPlugin->aroundExecute() called at [vendor/magento/framework/Interception/Interceptor.php:135] #10 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #11 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->___callPlugins() called at [generated/code/PayU/PaymentGateway/Controller/Order/RepayView/Interceptor.php:23] #12 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->execute() called at [vendor/magento/framework/App/Action/Action.php:111] #13 Magento\Framework\App\Action\Action->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58] #14 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #15 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #16 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->___callPlugins() called at [generated/code/PayU/PaymentGateway/Controller/Order/RepayView/Interceptor.php:32] #17 PayU\PaymentGateway\Controller\Order\RepayView\Interceptor->dispatch() called at [vendor/magento/framework/App/FrontController.php:186] #18 Magento\Framework\App\FrontController->processRequest() called at [vendor/magento/framework/App/FrontController.php:118] #19 Magento\Framework\App\FrontController->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58] #20 Magento\Framework\App\FrontController\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #21 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php:99] #22 Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch() called at [vendor/magento/framework/Interception/Interceptor.php:135] #23 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php:71] #24 Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch() called at [vendor/magento/framework/Interception/Interceptor.php:135] #25 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #26 Magento\Framework\App\FrontController\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/App/FrontController/Interceptor.php:23] #27 Magento\Framework\App\FrontController\Interceptor->dispatch() called at [vendor/magento/framework/App/Http.php:116] #28 Magento\Framework\App\Http->launch() called at [vendor/magento/framework/App/Bootstrap.php:263] #29 Magento\Framework\App\Bootstrap->run() called at [pub/index.php:30]
This happens on an order placed by a logged-in user as well as an not logged in. For a logged in one, it is possible to go from the profile page correctly - there is no error there.
The module was installed using composer. The problem is in a production environment as well as sandbox payu.
after generating static files with command php bin/magento setup:static-content:deploy file /PayU_PaymentGateway/css/payu.css is not created.
After loading the page in the browser, an error appears:
Refused to apply style from 'https://xxx.com/static/version1647765571/frontend/Sm/market/pl_PL/PayU_PaymentGateway/css/payu.css' because its MIME type ('text/plain') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
The payu.css file at the specified path does not exist. Cleaning cache files and reinstalling does not help. In the attached screenshot you can see that the css styles are missing
My Magento wer. 2.4.2
Attempting to fix the error:
a file was created in /var/www/html/vendor/payu/magento24-payment-gateway/view/frontend/web/css/payu.css with content from https://github.com/PayU-EMEA/plugin_magento_24/blob/master/view/base/web/css/payu.css and run php bin/magento setup:static-content:deploy
I have an issue with two invoices inside one order.
The first one created is correct - it invoiced two items and shipping amount.
The second one invoiced same two items, but without shipping amount.
In the result of this, total_due
in order is the amount of shipping amount. (total_paid
does not include shipping amount).
The second invoice was created 1 minute after first one.
In the first try of PayU request, Magento returned error 500 with deadlock found in Magento DB, but the invoice was created correctly.
The second try was fully successfull, but it duplicated the invoice as described above.
To fix this issue, you should add canInvoice
method to prevent duplicate invoice creation and if the invoice is already created - use that one to finish request. Magento should also prevent from invoicing same items.
I'm working on this now.
Exception #0 (Exception): Deprecated Functionality: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated vendor/payu/magento24-payment-gateway/Model/Config.php on line 162
Test was done on sandbox mode.
Magento:
"magento/product-community-edition": "2.4.6-p3"
PayU Plugin:
"payu/magento24-payment-gateway": "2.0.1"
When we are trying to place order on sandbox mode environment with PayU credit cards method, we are receiving the following error:
ERROR_VALUE_INVALID - OPENPAYU_PAYMENT_CREATE_ERROR_OTHER_TEMPORARY
This error is not available on the list provided by PayU, so we don't know how to solve it - https://developers.payu.com/europe/pl/docs/payouts/payouts-api/error-codes/.
We have checked the body that we are sending on this request - it seems to be correct.
{"order":{"description":"Zamówienie 123 [....com]","customerIp":"127.0.0.1","extOrderId":"123_65cb204f03b4f","notifyUrl":"https://.../pl/payu/data/getNotify/type/payu_gateway_card/store/1/","continueUrl":"https://.../pl/checkout/onepage/success/","totalAmount":"16189","currencyCode":"PLN","merchantPosId":"341496","payMethods":{"payMethod":{"type":"CARD_TOKEN","value":"TOKD_1LHRVR0MQNQS02z9zw3J4HjUWjF"}},"buyer":{"email":"[email protected]","firstName":"Iza","lastName":"Test","phone":"435434543","extCustomerId":"48344","language":"pl","delivery":{"street":"Szkolna 21","postalCode":"41-500","city":"Bytom","countryCode":"PL"}},"products":[{"quantity":1.0,"name":"Golf","unitPrice":"14990"},{"quantity":1,"name":"Shipment [Kurier DPD]","unitPrice":"1199"}],"threeDsAuthentication":{"cardholder":{"name":"Iza Test","billingAddress":{"countryCode":"PL","street":"Szkolna 21","city":"Bytom","postalCode":"41-500"}},"browser":{"requestIP":"127.0.0.1","screenWidth":"","javaEnabled":"","timezoneOffset":"","screenHeight":"","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36","colorDepth":"","language":""}}}}
We are using test cards avalilable on https://developers.payu.com/europe/pl/docs/testing/sandbox/.
Could you explain us what ERROR_VALUE_INVALID - OPENPAYU_PAYMENT_CREATE_ERROR_OTHER_TEMPORARY
error mean?
I have issue with multistore Magento 2.4.2-p1 setup. I need Payment Method to be available only for one website (now we have 3 websites in one M2 setup). But even so in admin configuration PayU and PayU Card set to "Enable - No" it still displayed on checkout page.
Steps to reproduce:
Expected result:
Actual result:
PayU is available in payment method list for both websites.
Research:
This is caused by config active
in etc/config.xml
. During PayUPaymentGatewayFacade
initialization only this config is checked.
Suggested solution:
Add validatorPool
to payment facades as shown in documentation https://devdocs.magento.com/guides/v2.4/payments-integrations/base-integration/facade-configuration.html.
For example facade KPVirtual
in vendor/klarna/module-kp/etc/di.xml
and it's availability
validator - \Klarna\Kp\Gateway\Validator\SessionValidator
Test was done on sandbox mode.
Magento:
"magento/product-community-edition": "2.4.6-p3"
PayU Plugin:
"payu/magento24-payment-gateway": "2.0.0
There is no possibility to place order that has more then 1 product, to be precise 1 configurable products plus another product.
The error that we are received:
payULogger.CRITICAL: ERROR_SYNTAX - Bad syntax {"order":{"description":"Zamówienie L1110525994 [xxx]","customerIp":"xxx","extOrderId":"L1110525994_65b7a1bed66ba","notifyUrl":"https://abc/pl/payu/data/getNotify/type/payu_gateway/store/1/","continueUrl":"https://abc/pl/checkout/onepage/success/","totalAmount":"31980","currencyCode":"PLN","merchantPosId":"xxx","payMethods":{"payMethod":{"type":"PBL","value":"p"}},"buyer":{"email":"[email protected]","firstName":"Test","lastName":"Test","phone":"435434543","language":"pl","delivery":{"street":"Szkolna 21","postalCode":"41-500","city":"Gdynia","countryCode":"PL"}},"products":{"0":{"quantity":1.0,"name":"Bluza Zielona","unitPrice":"14990"},"2":{"quantity":1.0,"name":"Bluza Beżowa","unitPrice":"16990"},"3":{"quantity":1,"name":"Shipment [Kurier DPD]","unitPrice":"0"}}}} []
In class [Gateway/Request/ProductsDataBuilder.php ](
) there is a loop through order items.[ '0' => [...], '2' => [...], ]
It has impact on json encoding in
plugin_magento_24/lib/OpenPayU/Util.php
Line 125 in 1966a3a
This is due to this line:
Fix is provided directly to PayU Magento Plugin.
In log file we find only this:
Trace: <pre>#1 Zend_Http_Client->setUri() called at [vendor/payu/magento24-payment-gateway/Model/GetMultiCurrencyPricing.php:70] #2 PayU\PaymentGateway\Model\GetMultiCurrencyPricing->execute() called at [vendor/payu/magento24-payment-gateway/Model/McpEchangeRateResolver.php:34] #3 PayU\PaymentGateway\Model\McpEchangeRateResolver->resolve() called at [vendor/payu/magento24-payment-gateway/Observer/McpCollectTotals.php:64] #4 PayU\PaymentGateway\Observer\McpCollectTotals->execute() called at [vendor/magento/framework/Event/Invoker/InvokerDefault.php:88]
Bugs show after installation.
Hello,
I have detected problem with payment description/title length.
There is a limit on PayU system, so when it is printed on panel page or in client's mail it looks bad.
Like You can see, address is cutted.
When configuring a non-sandbox payment we get:
window.checkoutConfig = TypeError: array_walk(): Argument #1 ($array) must be of type array, bool given in /www/magento/vendor/payu/magento24-payment-gateway/Model/GetPayMethods.php:126
Stack trace:
#0 /www/magento/vendor/payu/magento24-payment-gateway/Model/GetPayMethods.php(126): array_walk()
#1 /www/magento/vendor/payu/magento24-payment-gateway/Model/GetPayMethods.php(92): PayU\PaymentGateway\Model\GetPayMethods->sortPaymentMethods()
#2 /www/magento/vendor/payu/magento24-payment-gateway/Model/Ui/ConfigProvider.php(95): PayU\PaymentGateway\Model\GetPayMethods->execute()
#3 /www/magento/vendor/magento/module-checkout/Model/CompositeConfigProvider.php(39): PayU\PaymentGateway\Model\Ui\ConfigProvider->getConfig()
#4 /www/magento/vendor/magento/module-checkout/Block/Cart/Shipping.php(84): Magento\Checkout\Model\CompositeConfigProvider->getConfig()
#5 /www/magento/vendor/magento/module-checkout/Block/Cart/Shipping.php(120): Magento\Checkout\Block\Cart\Shipping->getCheckoutConfig()
#6 /www/magento/app/design/frontend/MageBig/martfury/layout01/Magento_Checkout/templates/cart/shipping.phtml(37): Magento\Checkout\Block\Cart\Shipping->getSerializedCheckoutConfig()
#7 /www/magento/vendor/magento/framework/View/TemplateEngine/Php.php(71): include('...')
#8 /www/magento/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\TemplateEngine\Php->render()
#9 /www/magento/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent()
#10 /www/magento/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception{closure}()
#11 /www/magento/generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php(23): Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins()
#12 /www/magento/vendor/magento/framework/View/Element/Template.php(263): Magento\Framework\View\TemplateEngine\Php\Interceptor->render()
#13 /www/magento/vendor/magento/framework/View/Element/Template.php(293): Magento\Framework\View\Element\Template->fetchView()
#14 /www/magento/vendor/magento/framework/View/Element/AbstractBlock.php(1117): Magento\Framework\View\Element\Template->_toHtml()
#15 /www/magento/vendor/magento/framework/View/Element/AbstractBlock.php(1121): Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element{closure}()
#16 /www/magento/vendor/magento/framework/View/Element/AbstractBlock.php(670): Magento\Framework\View\Element\AbstractBlock->_loadCache()
#17 /www/magento/vendor/magento/framework/View/Layout.php(578): Magento\Framework\View\Element\AbstractBlock->toHtml()
#18 /www/magento/vendor/magento/framework/View/Layout.php(555): Magento\Framework\View\Layout->_renderBlock()
#19 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#20 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#21 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#22 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#23 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#24 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#25 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#26 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#27 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#28 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#29 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#30 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#31 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#32 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#33 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#34 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#35 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#36 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#37 /www/magento/vendor/magento/framework/View/Element/AbstractBlock.php(517): Magento\Framework\View\Layout\Interceptor->renderElement()
#38 /www/magento/vendor/magento/module-checkout/view/frontend/templates/cart.phtml(16): Magento\Framework\View\Element\AbstractBlock->getChildHtml()
#39 /www/magento/vendor/magento/framework/View/TemplateEngine/Php.php(71): include('...')
#40 /www/magento/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\TemplateEngine\Php->render()
#41 /www/magento/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent()
#42 /www/magento/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception{closure}()
#43 /www/magento/generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php(23): Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins()
#44 /www/magento/vendor/magento/framework/View/Element/Template.php(263): Magento\Framework\View\TemplateEngine\Php\Interceptor->render()
#45 /www/magento/vendor/magento/framework/View/Element/Template.php(293): Magento\Framework\View\Element\Template->fetchView()
#46 /www/magento/vendor/magento/framework/View/Element/AbstractBlock.php(1117): Magento\Framework\View\Element\Template->_toHtml()
#47 /www/magento/vendor/magento/framework/View/Element/AbstractBlock.php(1121): Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element{closure}()
#48 /www/magento/vendor/magento/framework/View/Element/AbstractBlock.php(670): Magento\Framework\View\Element\AbstractBlock->_loadCache()
#49 /www/magento/vendor/magento/framework/View/Layout.php(578): Magento\Framework\View\Element\AbstractBlock->toHtml()
#50 /www/magento/vendor/magento/framework/View/Layout.php(555): Magento\Framework\View\Layout->_renderBlock()
#51 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#52 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#53 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#54 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#55 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#56 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#57 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#58 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#59 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#60 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#61 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#62 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#63 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#64 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#65 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#66 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#67 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#68 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#69 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#70 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#71 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#72 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#73 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#74 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#75 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#76 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#77 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#78 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#79 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#80 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#81 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#82 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#83 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#84 /www/magento/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout\Interceptor->renderElement()
#85 /www/magento/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer()
#86 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(149): Magento\Framework\View\Layout->renderNonCachedElement()
#87 /www/magento/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement()
#88 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(140): Magento\Framework\View\Layout->renderElement()
#89 /www/magento/vendor/magento/framework/View/Layout.php(975): Magento\Framework\View\Layout\Interceptor->renderElement()
#90 /www/magento/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\Layout->getOutput()
#91 /www/magento/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\Layout\Interceptor->___callParent()
#92 /www/magento/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception{closure}()
#93 /www/magento/generated/code/Magento/Framework/View/Layout/Interceptor.php(347): Magento\Framework\View\Layout\Interceptor->___callPlugins()
#94 /www/magento/vendor/magento/framework/View/Result/Page.php(260): Magento\Framework\View\Layout\Interceptor->getOutput()
#95 /www/magento/vendor/magento/framework/View/Result/Layout.php(171): Magento\Framework\View\Result\Page->render()
#96 /www/magento/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\Result\Layout->renderResult()
#97 /www/magento/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\Result\Page\Interceptor->___callParent()
#98 /www/magento/vendor/magezon/module-core/Plugin/View/Result/Layout.php(24): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception{closure}()
#99 /www/magento/vendor/magento/framework/Interception/Interceptor.php(135): Magezon\Core\Plugin\View\Result\Layout->aroundRenderResult()
#100 /www/magento/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception{closure}()
#101 /www/magento/generated/code/Magento/Framework/View/Result/Page/Interceptor.php(95): Magento\Framework\View\Result\Page\Interceptor->___callPlugins()
#102 /www/magento/vendor/magento/framework/App/Http.php(120): Magento\Framework\View\Result\Page\Interceptor->renderResult()
#103 /www/magento/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch()
#104 /www/magento/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch()
#105 /www/magento/pub/index.php(30): Magento\Framework\App\Bootstrap->run()
#106 {main}
We have discovered an issue with an amount being send for refund request. Let's say we have an order with total = 19.99. While creating a refund (sending request to OpenPayU/v2/Refund.php there is total * 100 as $amount send and later on in OpenPayU/v2/Refund.php there is (int)$amount which is finally giving us 1998 instead of 1999 as a final value which is being send.
Magento 2.4.3-p2
W momencie niepowodzenia płatności w systemie, moduł sam nadaje status "anulowane" w magento.
Co jest błędnym krokiem, bo co w momencie gdy ktoś chce skorzystać z opcji zapłać ponownie?
Dodatkowo, proces anulowania odbywa się w sposób błędny, bo np. nie powracają kody rabatowe do puli działania.
W przypadku anulacji manualnej w panelu przez obsługę sklepu, ten problem nie występuje.
Gdy ten status nadaje moduł PayU, wówczas nie można ponownie użyć kodu rabatowego.
Problem występuje w najnowszej wersji 1.0.3.
Creating orders from cmd/cron won't work because of this error on php 8.2:
Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/vendor/payu/magento24-payment-gateway/Model/CreateOrderResolver.php on line 444
Fix: payu/magento24-payment-gateway/Model/CreateOrderResolver.php:444
Should be:
$ip = explode(',', trim($this->http->getClientIp() ?? ''));
Instead of:
$ip = explode(',', trim($this->http->getClientIp()));
Hello,
One of our customers wants to create invoices manually. (from admin panel)
The current version changes order status to PENDING and then to PROCESSING.
We would like to disable automatic the status changes in payu module so even paid orders stay at PENDING until our customer clicks INVOICE in admin panel.
Also we are not sure but doesn't payu doubles the PENDING status? - we receive two requests in our webhook when using this payment method so in our webhook log it looks like this PENDING->PENDING->PROCESSING->PROCESSING (because of automatic invoice generation.)
I checked the previous version of magento where everything worked as customer wanted, and there are no automatic payment capture, it stays at authorization of payment and when we create invoice (with online payment capture option checked) it captures the payment. - where we can set it to work this way?
Thank you for helping us in advance.
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.