Giter Club home page Giter Club logo

checkout-magento2-plugin's People

Contributors

aamant avatar alfie-loakes-cko avatar antoine-fontaine avatar aquila-freitas-cko avatar avish-bisbeehurry-cko avatar david-fiaty-cko avatar dnd-behou avatar dnd-gautierbardon avatar dnd-jimbra avatar dnd-juanito avatar dnd-kallard avatar dnd-sony avatar elvinristi avatar floubna avatar ioan-ghisoi-cko avatar juliosdnd avatar likemusic avatar luke-fenn-cko avatar magentix avatar nicolas-maalouf-cko avatar robbie-thompson avatar ved-beejadhur-cko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

checkout-magento2-plugin's Issues

Custom url for failured payment

At the moment (for iframe integration) if user input invalid card data (for example bad cvv) hi is redirected to "checkout/cart". To fix his mistake he should:

  1. Click "Proceed to checkout" to go to "checkout/#shipping".
  2. Click "Next" to go to "checkout/#payment" and see iframe where to put card data.

In my case I have one more custom step between "checkout/#shipping" and "checkout/#payment".

Threrefore it wold be better for UX redirect user directly to "checkout/#payment" on failed payment. Or to have this url in plugin config. Or separate getter for result url for failed payment to interface method, to have possibilities to overwrite it in custom separated magento module.

Warning: count(): Parameter must be an array or an object that implements Countable in /chroot/home/ininefiv/ecommerce-for-erp.com/html/vendor/checkoutcom/magento2/Model/Service/VersionHandlerService.php on line 143

Hello Team,

I have noticed below error after installing the extension on Magento 2.3.4 Open Source. Can you please look into this.

Warning: count(): Parameter must be an array or an object that implements Countable in /chroot/home/ininefiv/ecommerce-for-erp.com/html/vendor/checkoutcom/magento2/Model/Service/VersionHandlerService.php on line 143

Cannot checkout if keys are not validated, even when disabled

With 1.0.6 installed, even if the extension is not enabled, if I do not have correct keys entered then when I visit https://somedomain.com/checkout/cart/ instead of the cart I get to see this:

1 exception(s):
Exception #0 (CheckoutCom\Magento2\Gateway\Exception\ApiClientException): Your API key is invalid.

Exception #0 (CheckoutCom\Magento2\Gateway\Exception\ApiClientException): Your API key is invalid.
#0 .../vendor/checkoutcom/magento2/Model/Ui/ConfigProvider.php(109): CheckoutCom\Magento2\Model\Service\PaymentTokenService->getToken()
#1 .../vendor/checkoutcom/magento2/Model/Ui/ConfigProvider.php(91): CheckoutCom\Magento2\Model\Ui\ConfigProvider->getPaymentToken()
#2 .../vendor/magento/module-checkout/Model/CompositeConfigProvider.php(32): CheckoutCom\Magento2\Model\Ui\ConfigProvider->getConfig()
#3 .../vendor/magento/module-checkout/Block/Cart/Shipping.php(54): Magento\Checkout\Model\CompositeConfigProvider->getConfig()
#4 .../var/generation/Magento/Checkout/Block/Cart/Shipping/Interceptor.php(24): Magento\Checkout\Block\Cart\Shipping->getCheckoutConfig()
#5 .../vendor/magento/module-checkout/view/frontend/templates/cart/shipping.phtml(28): Magento\Checkout\Block\Cart\Shipping\Interceptor->getCheckoutConfig()
#6 .../vendor/magento/framework/View/TemplateEngine/Php.php(59): include('/Volumes/Sites/...')
#7 .../vendor/magento/framework/View/Element/Template.php(255): Magento\Framework\View\TemplateEngine\Php->render(Object(Magento\Checkout\Block\Cart\Shipping\Interceptor), '/Volumes/Sites/...', Array)
#8 .../vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Element\Template->fetchView('/Volumes/Sites/...')
#9 .../var/generation/Magento/Checkout/Block/Cart/Shipping/Interceptor.php(221): Magento\Checkout\Block\Cart\Shipping\Interceptor->___callPlugins('fetchView', Array, Array)
#10 .../vendor/magento/framework/View/Element/Template.php(279): Magento\Checkout\Block\Cart\Shipping\Interceptor->fetchView('/Volumes/Sites/...')
#11 .../vendor/magento/framework/View/Element/AbstractBlock.php(659): Magento\Framework\View\Element\Template->_toHtml()
#12 .../vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Element\AbstractBlock->toHtml()
#13 .../var/generation/Magento/Checkout/Block/Cart/Shipping/Interceptor.php(520): Magento\Checkout\Block\Cart\Shipping\Interceptor->___callPlugins('toHtml', Array, Array)
#14 .../vendor/magento/framework/View/Layout.php(542): Magento\Checkout\Block\Cart\Shipping\Interceptor->toHtml()
#15 .../vendor/magento/framework/View/Layout.php(518): Magento\Framework\View\Layout->_renderBlock('checkout.cart.s...')
#16 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('checkout.cart.s...')
#17 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('checkout.cart.s...')
#18 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('checkout.cart.s...', true)
#19 .../vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('checkout.cart.s...')
#20 .../vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('cart.summary')
#21 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('cart.summary')
#22 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('cart.summary')
#23 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('cart.summary', true)
#24 .../vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('cart.summary')
#25 .../vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('cart.sidebar.wi...')
#26 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('cart.sidebar.wi...')
#27 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('cart.sidebar.wi...')
#28 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('cart.sidebar.wi...', true)
#29 .../vendor/magento/framework/View/Element/AbstractBlock.php(499): Magento\Framework\View\Layout\Interceptor->renderElement('cart.sidebar.wi...', true)
#30 .../var/generation/Magento/Checkout/Block/Cart/Interceptor.php(557): Magento\Framework\View\Element\AbstractBlock->getChildHtml('with-items', true)
#31 .../vendor/magento/module-checkout/view/frontend/templates/cart.phtml(15): Magento\Checkout\Block\Cart\Interceptor->getChildHtml('with-items')
#32 .../vendor/magento/framework/View/TemplateEngine/Php.php(59): include('/Volumes/Sites/...')
#33 .../vendor/magento/framework/View/Element/Template.php(255): Magento\Framework\View\TemplateEngine\Php->render(Object(Magento\Checkout\Block\Cart\Interceptor), '/Volumes/Sites/...', Array)
#34 .../vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Element\Template->fetchView('/Volumes/Sites/...')
#35 .../var/generation/Magento/Checkout/Block/Cart/Interceptor.php(325): Magento\Checkout\Block\Cart\Interceptor->___callPlugins('fetchView', Array, Array)
#36 .../vendor/magento/framework/View/Element/Template.php(279): Magento\Checkout\Block\Cart\Interceptor->fetchView('/Volumes/Sites/...')
#37 .../vendor/magento/framework/View/Element/AbstractBlock.php(659): Magento\Framework\View\Element\Template->_toHtml()
#38 .../vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Element\AbstractBlock->toHtml()
#39 .../var/generation/Magento/Checkout/Block/Cart/Interceptor.php(650): Magento\Checkout\Block\Cart\Interceptor->___callPlugins('toHtml', Array, Array)
#40 .../vendor/magento/framework/View/Layout.php(542): Magento\Checkout\Block\Cart\Interceptor->toHtml()
#41 .../vendor/magento/framework/View/Layout.php(518): Magento\Framework\View\Layout->_renderBlock('cart.sidebar.wi...')
#42 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('cart.sidebar.wi...')
#43 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('cart.sidebar.wi...')
#44 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('cart.sidebar.wi...', true)
#45 .../vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('cart.sidebar.wi...')
#46 .../vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('sidebar.main')
#47 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('sidebar.main')
#48 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('sidebar.main')
#49 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('sidebar.main', true)
#50 .../vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('sidebar.main')
#51 .../vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('div.sidebar.mai...')
#52 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('div.sidebar.mai...')
#53 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('div.sidebar.mai...')
#54 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('div.sidebar.mai...', true)
#55 .../vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('div.sidebar.mai...')
#56 .../vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('columns')
#57 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('columns')
#58 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('columns')
#59 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('columns', true)
#60 .../vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('columns')
#61 .../vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('main.content')
#62 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('main.content')
#63 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('main.content')
#64 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('main.content', true)
#65 .../vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('main.content')
#66 .../vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('page.wrapper')
#67 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('page.wrapper')
#68 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('page.wrapper')
#69 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('page.wrapper', true)
#70 .../vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('page.wrapper')
#71 .../vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('root')
#72 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('root')
#73 .../vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('root')
#74 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('root', true)
#75 .../vendor/magento/framework/View/Layout.php(938): Magento\Framework\View\Layout\Interceptor->renderElement('root')
#76 .../vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\View\Layout->getOutput()
#77 .../var/generation/Magento/Framework/View/Layout/Interceptor.php(494): Magento\Framework\View\Layout\Interceptor->___callPlugins('getOutput', Array, Array)
#78 .../vendor/magento/framework/View/Result/Page.php(243): Magento\Framework\View\Layout\Interceptor->getOutput()
#79 .../vendor/magento/framework/View/Result/Layout.php(164): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor))
#80 .../vendor/magento/framework/Interception/Interceptor.php(74): Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#81 .../vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\View\Result\Page\Interceptor->___callParent('renderResult', Array)
#82 .../vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'renderResult', Object(Magento\Framework\View\Result\Page\Interceptor), Array, 'result-varnish-...')
#83 .../vendor/magento/module-page-cache/Model/Controller/Result/VarnishPlugin.php(74): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#84 .../vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\PageCache\Model\Controller\Result\VarnishPlugin->aroundRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Closure), Object(Magento\Framework\App\Response\Http\Interceptor))
#85 .../vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'renderResult', Object(Magento\Framework\View\Result\Page\Interceptor), Array, 'result-builtin-...')
#86 .../vendor/magento/module-page-cache/Model/Controller/Result/BuiltinPlugin.php(67): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#87 .../vendor/magento/framework/Interception/Interceptor.php(142): Magento\PageCache\Model\Controller\Result\BuiltinPlugin->aroundRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Closure), Object(Magento\Framework\App\Response\Http\Interceptor))
#88 .../var/generation/Magento/Framework/View/Result/Page/Interceptor.php(130): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, Array)
#89 .../vendor/magento/framework/App/Http.php(139): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#90 .../vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#91 .../pub/index.php(37): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#92 {main}

It would be helpful if the extension just did not present itself as a payment option instead of throwing this as an uncaught error on the frontend. Indeed, when not enabled it should not really be doing any checks at all!

Impossible to place an order with enabled terms and conditions (hosted)

Prerequisites:

  • Magento Open Source: 2.2.3
  • Checkoutcom module: latest version 1.0.26
  • Checkoutcom integration type: Hosted

Steps to reproduce:

  • Enable terms and conditions in admin area
  • Add new conditions in admin (with manual type)
  • Go to frontend and try to place an order
  • After entering card details on the checkout.com site it redirects back to Magento cart with this error message: "Please agree to all the terms and conditions before placing the order."

Cannot override css for embedded form

Although there is an option to set a custom css file, there is hard-coded css that is always output after this. It is this hard-coded css that we would like to override but lack a mechanism to do so.

See view/frontend/templates/embedded.phtml

Alternatively, you could always make the changes we suggested in #10 ;)

The order confirmation email is not sent

Hi guys,

Seems like the order email is not being sent when I used the checkout.com payment method. Do you guys have any idea? Only happens on order.. invoicing is fine. Currently running magento 2.3.4 and on test account of checkout.com

How to override CheckoutCom\Magento2\Gateway\Http\TransferFactory

Not an issue but need suggestion.

I'm trying to override the function create() from CheckoutCom\Magento2\Gateway\Http\TransferFactory file.

I've added following
<preference for="CheckoutCom\Magento2\Gateway\Http\TransferFactory" type="Mymodule\CheckoutCom\Gateway\Http\TransferFactory" />

But it's not working.

I need to override because I want to use the different secret key from different website due to some calculations on the fly.

Incorrect Callback URL in store view

The callback URL field in Admin > Stores > Configuration which gets auto-populated always takes the default store value. It should take the value based on the callback URL set against account keys which are at store view level. So for instance if default store callback URL is www.example.com/checkout/success
and store view level callback URL is www.example.com/ae_en/checkout/success , in this case in Admin panel > Stores > Configuration > Change Store view to ae_en > Sales > Payment Methods > Checkout.com > Callback URL will still show www.example.com/checkout/success

Logos in text areas overlap writing area

screenshot 2017-10-03 10 27 58

It's possible to enter the CVV digits, and the info hover also works, but they overlap which looks a bit broken. Similarly, the card number disappears underneath the card type logo.

Is it possible to make the boxes longer to avoid the overlap?

Info about webhook and their configuration in readme required for plugin well work

Endpoint should have webhook to change order status automaticaly according to plugin config . At the moment there is no info about it in readme.

Also a found that webhook controller acceps only limited types of events:

  • refund
  • void
  • authorize
  • capture

All other event types could/should be disabled for webhook.

Imho, this info should be added to the readme, to prevent trubles with this plugin for users.

Emails issues

Hey @nicolas-maalouf-cko and @david-fiaty-cko ,

thank you guys for your hard work with this extension.

Magento 2 : version 2.1.7.
Checkout.com Module version : 1.0.9.

i have a strange problem with emails,

after the order is placed i get an order confirmation email even before the 3D Secure Verification page process is completed. and there is extra info the doesn't suppose to be in the email see issue - #14

capture

also when i capture the payment the module creates an invoice but doesn't send the email.
the same with refunds the credit memo is created but it doesn't send the email. i have to send them manually

I also have another issue with callback URLs, but i will open another issue to track them separately

Oct 31, 2017 3:57:05 PM Pending Payment Customer Notified
Oct 31, 2017 4:01:17 PM Invoice #9 created Customer Notified
Oct 31, 2017 4:01:18 PM Processing Customer Notified
Oct 31, 2017 4:01:18 PM Processing
Oct 31, 2017 4:13:35 PM Processing
Oct 31, 2017 4:13:35 PM Credit memo #4 created

Notes for this Order

Authorized amount of 100 SAR Transaction ID: charge_test_C87F19CF151S74984601
Comment added Oct 31, 2017 3:57:05 PM
Captured amount of 100 SAR Transaction ID: charge_test_EC3A69DF151L749847B0
Comment added Oct 31, 2017 4:01:18 PM
Captured amount of 100,00 ر.س online. رقم المعاملة: "charge_test_EC3A69DF151L749847B0"
Comment added Oct 31, 2017 4:01:18 PM
We refunded 100,00 ر.س online. رقم المعاملة: "charge_test_8E4B49DF151R7498BE96"
Comment added Oct 31, 2017 4:13:35 PM

Checkout breaks if quote has a zero sum grand total

Summary of issue

Zero value orders may seem rare, but with Magento Commerce (EE) it is totally possible that a gift card account is paying for the order in full. In that event, the total of the order comes to zero. When that happens, the checkout will not initialise as an a critical error occurs and the checkout block that bootstraps the behemoth checkout JS component is never rendered, leading to a blank checkout.

This is the error that gets logged:

[2018-02-21 16:58:28] report.CRITICAL: The amount value must be positive. The [0] value has been given. [] []

This error seems to be raised here: https://github.com/checkout/checkout-magento2-plugin/blob/1.0.19/Model/Adapter/ChargeAmountAdapter.php#L82 in the function getGatewayAmountOfCurrency. I guess the module is doing some work ahead of time (i.e. before being used as the chosen payment method) that is tripping up in the case of a zero sum grand total?

Steps to reproduce

  1. Create a quote
  2. Go to the cart
  3. Use a gift card account that pays for the quote in total
  4. Go to the checkout

Set as default payment method

Is there anyway where I can set this as a default payment method? Mixins seems to be not working. Tried out adding the this.selectPaymentMethod() in the init functions but there are some complications on other functions.

Please advise.

Guest orders all return "Token already used"

When checking out as a guest we're always getting "Token already used" with an error code of "83023" even if we create a fresh session and basket. I'm not able to see an obvious reason for this within your sandbox dashboard, it just states "Authorisation : Fail" without a reason.

Thanks,
Bruce

Saved card vault title not showing

Issue

Saved cards don't show the vault title set in system config under payment/checkout_com_cc_vault/title on https://github.com/checkout/checkout-magento2-plugin/blob/master/Gateway/Config/Config.php#L218

Solutions

This can be fixed by either:

  • Setting the payment method code within this class before the return statement: $this->setMethodCode('checkout_com_cc_vault'); and changing the value string to just title
  • Using scope config directly: return (string) $this->scopeConfig->getValue( 'payment/checkout_com_cc_vault/title', ScopeInterface::SCOPE_STORES, $this->storeManager->getStore() );

System

Core version: 2.2.7
Module version: 1.0.40

Actions to replicate

  • login as a customer
  • place a test order with checkoutcom (checking save card option)
  • place another test order

Result

Vault title for saved card does not show resulting in " ending XXXX..."

Side notes:

Composer php requirements need to be updated for Magento 2.2+. They are currently:
php: ~5.5.0|~5.6.0|~7.0 and should be php: ~7.0|~7.1|~7.2 to be inline with Magento system requirements. Please see https://devdocs.magento.com/guides/v2.2/install-gde/system-requirements-tech.html#php
The composer option --ignore-platform-reqs has to be used to install the extension on systems running non-deprecated php versions (7.1 or greater)

Form disapears if billing address changed

Extension 2.0.11
Magento 2.1.9

If I change my billing address to be the same or different to the shipping address I end up with no iframe so I can't complete the checkout.

Can't use the plugin in production mode

Hi there,

We are unable to use the latest version in Production Mode:

2018/05/23 13:38:55 [error] 19510#19510: *28 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught RuntimeException: Source class "\CheckoutComTransfer" for "CheckoutComTransferFactory" generation does not exist. in /mnt/volume-lon1-01/var/www/vhosts/m2.s.vortexcommerce.com/htdocs/amritanutrition/releases/cb69778d3ea99fa2e44d6ccab90020b7049f61e3/vendor/magento/framework/Code/Generator.php:185 Stack trace: #0 /mnt/volume-lon1-01/var/www/vhosts/m2.s.vortexcommerce.com/htdocs/amritanutrition/releases/cb69778d3ea99fa2e44d6ccab90020b7049f61e3/vendor/magento/framework/Code/Generator.php(112): Magento\Framework\Code\Generator->tryToLoadSourceClass('CheckoutComTran...', Object(Magento\Framework\ObjectManager\Code\Generator\Factory)) #1 /mnt/volume-lon1-01/var/www/vhosts/m2.s.vortexcommerce.com/htdocs/amritanutrition/releases/cb69778d3ea99fa2e44d6ccab90020b7049f61e3/vendor/magento/framework/Code/Generator/Autoloader.php(35): Magento\Framework\Code\Generator->generateClass('CheckoutComTran...') #2 [internal function]: Magento\Framework\Code\Generator\Autoloader->load('Chec" while reading response header from upstream, client: 10.131.66.73, server: ~^(?<subdomain>.+)\.(?<platform>[(m2).]+)\.(?<environment>[(s|d|p).]+)\.vortexcommerce.com, request: "GET /?fsd HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "amritanutrition.m2.s.vortexcommerce.com" 2018/05/23 13:39:01 [error] 19510#19510: *28 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught RuntimeException: Source class "\CheckoutComTransfer" for "CheckoutComTransferFactory" generation does not exist. in /mnt/volume-lon1-01/var/www/vhosts/m2.s.vortexcommerce.com/htdocs/amritanutrition/releases/cb69778d3ea99fa2e44d6ccab90020b7049f61e3/vendor/magento/framework/Code/Generator.php:185 Stack trace: #0 /mnt/volume-lon1-01/var/www/vhosts/m2.s.vortexcommerce.com/htdocs/amritanutrition/releases/cb69778d3ea99fa2e44d6ccab90020b7049f61e3/vendor/magento/framework/Code/Generator.php(112): Magento\Framework\Code\Generator->tryToLoadSourceClass('CheckoutComTran...', Object(Magento\Framework\ObjectManager\Code\Generator\Factory)) #1 /mnt/volume-lon1-01/var/www/vhosts/m2.s.vortexcommerce.com/htdocs/amritanutrition/releases/cb69778d3ea99fa2e44d6ccab90020b7049f61e3/vendor/magento/framework/Code/Generator/Autoloader.php(35): Magento\Framework\Code\Generator->generateClass('CheckoutComTran...') #2 [internal function]: Magento\Framework\Code\Generator\Autoloader->load('Chec" while reading response header from upstream, client: 10.131.66.73, server: ~^(?<subdomain>.+)\.(?<platform>[(m2).]+)\.(?<environment>[(s|d|p).]+)\.vortexcommerce.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "amritanutrition.m2.s.vortexcommerce.com"

Error when changing css

Using v2.011 of extension
v2.1.9 of Magento 2

When trying to change css from custom to standard, it will not change and gives me the following error:

Something went wrong while saving this configuration: Notice: Undefined index: tmp_name in .../web-root/vendor/checkoutcom/magento2/Model/Config/Backend/CustomCss.php on line 52

Save Card upon checkout

Hello, there is an issue in the checkout if the customer check save card upon checkout payment and after successfully creating the order if u navigate to account then stored payment u will get no card saved ! can u verify this please it's urgent for us we are production environment.

Large gap under integrated form

Before the commit button there is a very large gap. I know why this is there - so that the tool tips in the iframe have space to be shown - a fix from a previous issue.

Not sure what the answer is there - if you move the button up then either it has to be over the iframe, which means that the tooltip will go underneath it; or it goes under the iframe, which means that the button cannot be pressed.

Our workaround may be to move the button up and over the iframe, but shift it to the left so that it does not interfere with the tool tip.

I'll have to leave it to you to see if you can come up with a general solution - perhaps the tool-tip needs to open upwards?

screenshot 2017-10-13 14 18 22

Multiple Capture of Payments

Setup:
Magento 2.2.3
Checkout.com module 1.0.20
Auto Capture Time: 1 hour
Integration: Frames
Debug: no (now turned on, but too late for this to help right now)

We are seeing a number of instances of orders being charged 2 (or more!) times. Looking at the access logs, the callback action is being called by checkout.com multiple times. Logging into the checkout.com hub I can see multiple authorisations that are then all getting captured. On the Magento side, the orders only show the last authorisation, but all the captures are being logged.

Example order in Magento with one authorisation but multiple captures:
screenshot 2018-04-10 11b safe

Here are the authorizations and captures from the hub:
screenshot 2018-04-10 11 safe

Here is an access log for a similar case that had only two captures:
screenshot 2018-04-10 12 safe

You can see that the checkout is only entered once, but there are two calls to payment details, suggesting that they submitted twice.

Any idea how multiple authorizations might be being made? We did not get any reports of errors from the customers, and cannot see anything in the error logs on the server.

Update the field comment

<comment>Select the action that should that should be used for orders with failed payments.</comment>

The field comment is currently "Select the action that should that should be used for orders with failed payments".

Could we please update to "Select the action that should be taken for a new order with a failed payment".

Warning message on admin

Magento version: 2.3.0
checkoutcom version: 2.2.2

Steps to reproduce:

  1. Install the extension in developer mode
composer require checkoutcom/magento2:^2.2.2
bin/magento setup:upgrade
rm -rf var/cache var/generation/ var/di
php bin/magento cache:clean
  1. Login in to admin

An warning message is shown

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/vendor/checkoutcom/magento2/Model/Service/VersionHandlerService.php on line 143

Order status problem

Hi,

Seems like there is an issue with "Authorization order status" setting.
By default it equals to Pending Payment, but in fact, the order status is always Processing after authorization.

Tested with the latest checkoutcom module on Magento 2.2.5

Frontend area of payment info block shows too much

The info block for a payment is rendered in the customer account area for orders, as well as in the order confirmation email.

I believe that it should only show relevant information for customers, but at present it's showing all transaction data that the admin sees. Here's an example from an order email:

screenshot 2017-10-13 15 20 41

The area is set on the block before it's rendered, so you should know if it's frontend or admin. If the former then I think you could just be showing the method and none of the extra info. Perhaps not output anything for frontend?

Redirect issue with 3DS enabled

Hi guys,

We are facing an issue every time we enable 3DS payments.

Whenever a successful payment is made the following happens:

  1. as expected, the user gets redirected to the success page configured in the Checkout Hub (/success)
  2. right after, the plugin redirects the user again to the 3DS verification page showing an error saying Merchant.Api.Models.ErrorResponse
    Here you can find the chain of redirects:
    unnamed

I've investigated the issue on my side and it seems like the PlaceOrderObserver is making the second redirect. Disabling the observer seems to fix the issue, but I'm not sure about possible side-effects.

What's the reason for that observer since anyways the redirect to 3DS happened before?

v1.0.14 Frames.js issue

STR

  • Install Magento Commerce 2.1.9 with sample data
  • Install latest checkoutcom/magento2 1.0.14
  • Enable to use Integration "Frames" (embedded)
  • Using Sandbox account details
  • settings in core_config_data:
    Settings
  • Using following CC test data:
    CC: 4242 4242 4242 4242
    MM: 06 YY: 18  CVV: 100

RESULT

Frames.js version 1.0.14 result:

  • After placing order payment-information gets after some time "cancelled" and redirected back to "checkout/#payment" (like refreshing the page)
  • Order is still placed and correct transaction data is attached.
  • Chrome console Networking:
    Settings

When downgrading back to 1.0.13 then such issue doesn't exist.

Undefined index: expiry_month upon saving card

{"0":"Notice: Undefined index: expiry_month in /home/magento/public_html/vendor/checkoutcom/magento2/Model/Vault/VaultToken.php on line 64","1":"#1 CheckoutCom\Magento2\Model\Vault\VaultToken->create() called at [vend$

Frames JS error

From a default setup, going to Stored Payment Methods in the customer account area, an error is thrown - Uncaught ReferenceError: Frames is not defined - looking in vault_cards_listaction.xml there is a script tag - <script src="CheckoutCom_Magento2/js/collapseForm.js"/> which relies on a window variable Frames.

Suggestion would be to:

  • remove <script src="CheckoutCom_Magento2/js/collapseForm.js"/> from vault_cards_listaction.xml
  • add the following to vendor/checkoutcom/magento2/view/frontend/templates/add-new-card-form.phtml:
<script type="text/x-magento-init">
    {
        "*": {
            "framesjs": {},
            "collapseForm": {}
        }
    }
</script>
  • add the following to vendor/checkoutcom/magento2/view/frontend/requirejs-config.js:
framesjs: 'https://cdn.checkout.com/js/frames.js',
collapseForm: 'CheckoutCom_Magento2/js/collapseForm'

This removes the collapse form js from render blocking and utilises standard magento requirejs loading.

Config loader refactoring

foreach($this->getEnabledMethods() as $method) { // Get enabled methods

The getEnabledMethods() is inherited from the \Magento\Payment\Gateway\Config\Config class and will get the payment methods enabled on a website level.

It will not check which internal Checkout.com payment methods are enabled. The result is that the payment methods will never show on a new install.

Generic styling added to body

Below is the CSS that this module appears to be appending to the body:

`
html {
overflow: -moz-scrollbars-vertical !important;
overflow-y: scroll !important;
}

body {
    overflow: visible !important;
}

#embeddedForm {
	z-index: 0 !important;
}

#embeddedForm, #embeddedForm iframe {
    position: relative !important;
}

#embeddedForm iframe {
	min-height: 153px;
}

#cko-form-holder {
    max-width: 50%;
}

`

The overflow: visible !important is breaking some styling on the site we are trying to use this extension on. Could this please be made more specific?

No invoice created even if set to do so

Using 1.0.8 with Magento 2.1.9:

Setup:

  • Extension in iframe mode (not redirecting).
  • Set option to automatically create invoice.

Actions:

  • Put through order on frontend

Expected:

  • Order created with paid invoice

Actual:

  • Order created but no invoice created

Quote addresses are empty after failed card authorization

Prerequisites

  • Vanilla Magento installation (2.2.3)
  • Latest checkoutcom module (1.0.30) configured to use Frames (sandbox mode)

Steps to reproduce

  1. Go to checkout with some products in cart
  2. Fill in shipping address, proceed to payment step
  3. Enter correct credit card number, but invalid CVV code, hit "Place Order"
  4. Error message appears (Authorization failed)
  5. Reload the page
  6. Addresses are empty (see a screenshot)
    checkoutcomemptyaddress

Version 2.0.9 does not work in production mode

Steps to reproduce the issue:

  1. Enable JS minification, merging & bundling
  2. Enable production mode

We can see that the site is broken, when it should load 1 minified, merged and bundled Javascript, it is trying to load non existing regular JS files, see attached screen
SUNSHINE NUTRITION - Brands 2019-10-16 08-00-29

Place order button is disabled after leaving checkout and returning back

Checked on clean Magento 2.1.9.
Checkout com module version: 1.0.23.3

Precondition

  • Frames solution enabled
  • More then one payment method is available

Steps to replicate

  1. Add some items to cart
  2. Go to Checkout as Guest
  3. Fill out shipping info
  4. Go to Step 2 of checkout
  5. Select “Cash on Delivery” payment method
  6. Leave checkout (you can go to shopping bag, for example)
  7. Go to checkout again
  8. Go to Step 2 of checkout
  9. Payment method is preselected

Expected

Place order button is enabled

Actual

Place order button is disabled

Note

  • Button gets enabled again after switching payment methods

screen shot 2018-07-02 at 6 26 43 pm

Vault title cannot be modified

There seems to be an area in the system config where the vault title can be specified:
screenshot 2017-10-13 16 00 15

However, the frontend always just shows this under the title checkout.com:
screenshot 2017-10-13 16 00 34

I cannot find any reference in the code to vault_title outside system.xml, so I suspect this has not been connected up? That or I don't understand what this title is for, which is possible.

PHP Fatal error: Uncaught Error: Call to a member function getPayment() on null

PHP Fatal error: Uncaught Error: Call to a member function getPayment() on null in vendor/checkoutcom/magento2/Helper/Utilities.php:94

Magento ver: Magento 2.2.5
Checkout.com module version : 2.0.5

When I try to place order with Product which has only 1 Qty available.

I traced error and found at vendor/magento/module-quote/Model/QuoteManagement.php: 522

It throwing an error of Product is out of stock.

And in this file : vendor/checkoutcom/magento2/Controller/Payment/Verify.php : 139

Order object is null.

Issue on frontend side on Magento Commerce 2.x

Didn't start to send it as PR but wanted to raise the issue which exists in current module.

(1) Changes, how we use in our module so there wouldn't be conflicting overrides with view/frontend/layout/sales_* files:

Issue is that current module is redefining blocks in layout files and resetting core's already defined blocks and loosing some Commerce specific definitions.

(2) Also when using other payment options in project then due CheckoutCom\Magento2\Block\Order\Info::getPaymentInfoHtml brings in abnormal behavior.

After enabling live payments with 3DS enabled - success page does not get shown. This only happens with live payments and not on sandbox.

Hi,

We switched from test environment to live environment. The setting is Authorize only in magento and 3DS is enabled. After customer places an order, they are redirected to bank website where they are charged successfully and then back to magento. the transaction in checkout.com shows as Authorized only, but customer receives a message from bank that amount was captured and when customer is redirected back to magento they do not get the order success page or order number details and order gets placed in magento. This is only happening with Live account, we are not experiencing this with sandbox account. The URLs configured in checkout.com for payment verification and failure are correct, so are all the keys.
Please advice on this issue.

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.