Git Product home page Git Product logo

plugin_magento_24's People

Contributors

dudzio12 avatar jemoon avatar regdos avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

dudzio12

plugin_magento_24's Issues

After update to v 1.0.3 cannot place order

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
obraz
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.

Ukrywanie dodatkowej sekcji "Moje zapisane karty"

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"

1.0.8 not working

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. [] []

Store cards in Sandbox PayU

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?
image

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] [] []

Class PayU does not exist

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.

Cannot install using composer

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.
`

Bug repayment on magento 2.4.2

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.

payu.css file is not generating

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

Beznazwy-1

Prevent second invoice creation when order is fully invoiced

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.

ERROR_VALUE_INVALID on sandbox /api/v2_1/orders request

General

Test was done on sandbox mode.

Magento:
"magento/product-community-edition": "2.4.6-p3"

PayU Plugin:
"payu/magento24-payment-gateway": "2.0.1"

Issue

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/.

More info

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?

Payment Method is listed on checkout even when Enable config set to No

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:

  1. Configure 2 Websites in Magento 2.4.* - website_1 and website_2
  2. Install module via composer
  3. In admin configuration set configs for PayU and PayU card for website_1: Enable Plugin - No. For website_2: Enable Plugin - Yes.

Expected result:

  • On website_1 checkout PayU is not available in payment methods list.
  • On website_2 checkout PayU is available in payment methods list.

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

ERROR_SYNTAX - Bad syntax on /api/v2_1/orders request

General

Test was done on sandbox mode.

Magento:
"magento/product-community-edition": "2.4.6-p3"

PayU Plugin:
"payu/magento24-payment-gateway": "2.0.0

AS-IS

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"}}}} []

REASON

In class [Gateway/Request/ProductsDataBuilder.php ](

foreach ($order->getItems() as $product) {
) there is a loop through order items.
If there are few simple products, everything works fine.
If there are configurable product plus another product of any type the logic is still working fine but result array has wrong keys (they are't sequential). For example if we have 1 configurable product + 1 simple product the result array will be like this (configurable products is save on quote as 2 separated products - parent and child option, child option is omitted by PayU logic here):
[ '0' => [...], '2' => [...], ]

It has impact on json encoding in

public static function buildJsonFromArray($data, $rootElement = '')
- it will return products as object of objects, meanwhile PayU API requires array of objects.
https://developers.payu.com/europe/pl/api#tag/Order/operation/create-an-order

This is due to this line:


It shuld be moved to the end of this if statement:
if ($product->getParentItem() === null) {

Then json encode will return data in correct structure.

TO-BE

Fix is provided directly to PayU Magento Plugin.

"Can add product to cart right now" in Magento 2.4.2

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.

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

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}

Wrong amount while creating a refund

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.

Automatyczne anulowanie transakcji nie przywraca kodów rabatowych

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.

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

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()));

Disable automatic status changes.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.