Code Monkey home page Code Monkey logo

adyen-magento2-express-checkout's People

Contributors

candemiralp avatar cenkiravul avatar dimitribouteille avatar hossam-adyen avatar josh-carter avatar khushboo-singhvi avatar leandromagnabosco avatar peterojo avatar raoulritter avatar renovate[bot] avatar rikterbeek avatar rokpopov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adyen-magento2-express-checkout's Issues

[PW-8234] BrowserInfo - JavaEnabled not being passed.

Describe the bug
When an express payment is being completed we are getting errors saying the javaEnabled value is not being passed to Magento which is causing an issue with the payment being accepted.

To Reproduce
Steps to reproduce the behavior:
Go to GooglePay Express payment.
Proceed to checkout.
Network request comes back with "Error with payment method. Please try and different method"
Check Adyen PSP and the error is Refused (15_002 Required field javaEnabled missing for device channel browser)

Expected behavior
Go to GooglePay Express
Proceed to checkout.
Payment should be accepted and works fine.

Additional context
From raising a support ticket with your team we have spotted that an acutal request will send.

"browserInfo" : {
      "userAgent" : "Mozilla\/5.0 (iPhone; CPU iPhone OS 16_1_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/16.1 Mobile\/15E148 Safari\/604.1",
      "acceptHeader" : "*\/*",
      "colorDepth" : 32,
      "language" : "en-GB",
      "javaEnabled" : false,
      "screenHeight" : 896,
      "screenWidth" : 414,
      "timeZoneOffset" : 0
   },

Where as the GooglePay express only sends

"browserInfo" : {
      "userAgent" : "Mozilla\/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/13.0.3 Mobile\/15E148 Safari\/604.1",
      "acceptHeader" : "application\/json, text\/plain, *\/*",
      "language" : "IE"
   },

[PW-7529] Feature request: Paypal support

Nice work regarding Apple Pay and Google Pay integration.

I was wondering if PayPal integration is on the roadmap and would be available in the near future?

thanks

[ECP-9157] Instant Pay buttons fail to work when Magentos Google Recaptcha is enabled

We're using Magento's built in Google recaptcha support on the checkout due to scam card checking attempts.
But with this enabled the instant pay buttons aren't working.

To Reproduce
Steps to reproduce the behavior:
1 Enable Google Recatpcha

Expected behavior
Order is placed with Google/Apple pay buttons

We either need the recaptcha shown when the instant pay buttons are displayed, or for this to be skipped

Apple Pay - Hide html and display if is available

Small improvement for the Apple Pay component: by default it should hide and display it only if the method is available.

display: none and display:block if this.applePayComponent.isAvailable() return true.

In my case, if Apple Pay is not available, the layout is broken :(

Capture d’écran du 2023-11-07 14-43-24

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

composer
composer.json
  • adyen/module-payment ^9
  • phpunit/phpunit *
  • magento/magento-coding-standard *
  • squizlabs/php_codesniffer *
github-actions
.github/workflows/codeql.yml
  • actions/checkout v4
  • github/codeql-action v2
  • github/codeql-action v2
  • github/codeql-action v2
.github/workflows/e2e.yml
.github/workflows/main.yml
  • shivammathur/setup-php v2
  • actions/checkout v4

  • Check this box to trigger a request for Renovate to run again on this repository

[ECP-9156] Express Checkout Options missing in the Checkout

Hi

The express checkout feature is great but it seems to have been missed from the most important location, which is in the checkout!

Shopify use it and it is the most used payment option in their checkout. We are constantly being asked by our shoppers why we don't have this function. I would be very grateful if you could add this feature, it will increase conversions for everyone. For the skilled developer on the Adyen team I am sure it would only be an afternoons work :)

Many thanks

James

[ECP-9155] Apple Pay on product page creates a new quote every time the page is loaded

Describe the bug
When enabling the Apple Pay express checkout on the product page, a new quote is created in Magento's quote table and its associated tables such as quote_item every time a product page is visited, including when it's refreshed. This happens for devices/browsers that both do and don't support Apple Pay.

To Reproduce
Steps to reproduce the behavior:

  1. In the Magento Admin, configure and enable Apple Pay express checkout on the product page
  2. Visit a product page, and note a new record inserted into Magento's quote table
  3. Visit a different product page (or refresh the current product page!)
  4. View Magento's quote table

Expected behavior
No new database records for customers who did not even initiate an Apple Pay session, such as:

  • only creating a new quote when a customer initiates an Apple Pay session (e.g. by clicking the button)
  • deleting the quote if a customer abandons an Apple Pay session (e.g. closing the Apple Pay form)
  • never creating a quote for non-supported devices. The current behavior is reproducible on browsers such as Firefox, which doesn't even support Apple Pay.

Screenshots
Here's an example of records being created in the quote table when refreshing a product page quickly a few times.
image

Desktop (please complete the following information):

  • OS: reproduced on MacOS
  • Browser: reproduced on Firefox, Safari

Smartphone (please complete the following information):

  • Device: iPohne
  • OS: iOS
  • Browser: reproduced on Safari

Additional context

This is what looks like the sequence of operations that leads to the creation of quotes each time a product is viewed

  1. https://github.com/Adyen/adyen-magento2-express-checkout/blob/develop/view/frontend/web/js/applepay/button.js#L83
  2. https://github.com/Adyen/adyen-magento2-express-checkout/blob/develop/view/frontend/web/js/actions/getExpressMethods.js#L57
  3. https://github.com/Adyen/adyen-magento2-express-checkout/blob/develop/etc/webapi.xml#L16
  4. https://github.com/Adyen/adyen-magento2-express-checkout/blob/develop/Api/ExpressInitInterface.php
  5. https://github.com/Adyen/adyen-magento2-express-checkout/blob/develop/Model/ExpressInit.php#L176

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

composer
composer.json
  • adyen/module-payment ^9.1.0
  • phpunit/phpunit *
  • magento/magento-coding-standard *
  • squizlabs/php_codesniffer *
github-actions
.github/workflows/codeql.yml
  • actions/checkout v4
  • github/codeql-action v2
  • github/codeql-action v2
  • github/codeql-action v2
.github/workflows/e2e.yml
.github/workflows/main.yml
  • shivammathur/setup-php v2
  • actions/checkout v4

  • Check this box to trigger a request for Renovate to run again on this repository

Apple Pay - Add onAvailable event

Is it possible to add the onAvailable event when the Apple Pay component is displayed? The goal is to be able to easily overload the Apple Pay component with mixins.

By the way, I see that there is already an onNotAvailable event.

this.applePayComponent
.isAvailable()
.then(() => {
element.style.display = 'block';
this.applePayComponent.mount(element);
}).catch((e) => {
this.onNotAvailable(e);
});

Can't see buttons in product page

Describe the bug
Buttons are not appearing in product page, I get this error in console:

Uncaught (in promise) TypeError: Cannot read properties of null (reading 'configuration')
    at UiClass.getGooglePayConfig (button.js:258:64)
    at UiClass.initialiseGooglePayComponent (button.js:173:46)

This seem to happen because button.js is trying to access gatewayMerchantId: googlePaymentMethod.configuration.gatewayMerchantId while googlePaymentMethod being null.

If I'm correct this googlePaymentMethod variable is populated in getPaymentMethod.js at line 9 by calling
customerData.get('adyen-express-pdp');

but \Adyen\ExpressCheckout\CustomerData\AdyenExpress always returns an empty array.

How can this even work?

To Reproduce
Steps to reproduce the behavior:

  1. Install and configure Adyen module
  2. Install and configure this module
  3. navigate to a product page

Expected behavior
Fast checkout buttons should be visible

Desktop (please complete the following information):

  • OS: ubuntu GNU/Linux
  • Browser chrome
  • Version 116.0.5845.96

Instant Pay buttons not working on test environment

We've installed the Magento 2 instant pay buttons on our Magento 2.4.5-p2 site and we are trying to verify that the instant pay buttons work before going live.

But we're unable to make any successful test purchases using Google or Apple Pay buttons.

There are no errors displayed in the console or on the server logs when testing.

Google Pay : Button renders correctly, and when clicked it shows dialog but then closes when clicking Pay. There are no console or server logs.

Apple Pay : Button renders correctly, Apple pay dialog opens, it's possible to select payment method, address etc, but then there's no button rendered to complete transactions.

Apple Pay
Screenshot 2023-06-19 at 08 44 38

Google Pay
Screenshot 2023-06-19 at 08 47 57

Upon selecting the custom shipping method and proceeding to use Google Pay Express Checkout, the process fails, and users are unable to complete their transactions.

Currently, when users click on the Google Pay Express Checkout button, a popup is supposed to open displaying relevant information. However, we've noticed that when a custom shipping method is selected, the popup closes abruptly within a second without any error message.

This issue does not occur when the default shipping method provided by Magento is enabled, indicating that there might be an inconsistency between our custom shipping method and the Google Pay Express Checkout functionality.

We would greatly appreciate your assistance in diagnosing and resolving this issue promptly to ensure a seamless checkout experience for our customers. Could you please investigate the compatibility of our custom shipping method with the Google Pay Express Checkout feature and provide any necessary guidance or adjustments needed to rectify this problem?

Steps to reproduce the behavior:

  1. Visit the cart page.
  2. Click on the Google Pay Express Checkout button.
  3. Upon clicking the Google Pay Express Checkout button, a popup window opens as expected.
  4. However, the popup unexpectedly closes automatically after appro
  5. We've thoroughly checked the console for errors, but no relevant error messages are displayed.
  6. Additionally, our investigation extends to the Adyen log, which also does not provide any clues as to why the popup is closing abruptly.

Expected behavior
The Google Pay Express Checkout popup does Not close automatically on our website's cart page.

Smartphone (please complete the following information):

  • Device: Android
  • OS: Funtouch OS
  • Browser: Chrome
  • Version 116.0.5845.110

[PW-8388] Multiple calls to getCountries being made

On PDP load we are seeing 4 calls to the rest/V1/directory/countries webapi.

The issue is that the check has an or (||) condition and I believe it should have an and (&&) condition instead.

if (!Object.keys(this.countries).length || !this.fetchingCountries) {

Example Change:
if (!Object.keys(this.countries).length && !this.fetchingCountries) {

This should help with the load times on the PDP.

[ECP-9158] Checkout not working with required agreements

Describe the bug

When I try place order with Apple Pay, I have the following error :

The order wasn't placed. First, agree to the terms and conditions, then try placing your order again.

To Reproduce

Steps to reproduce the behavior:

  • Create required agreements in Magento
  • Try place order with Apple Pay (maybe same error with Google Pay)
  • See error on request /payment-information
  • 💥

Expected behavior

Agreements validation must be disabled with express checkout.

Error trace

{
    "message": "Die Bestellung wurde noch nicht platziert. Bitte stimmen Sie erst unseren Nutzungsbedingungen zu und versuchen Sie dann die Bestellung erneut abzusenden.",
    "trace": "#0 /vendor/magento/module-checkout-agreements/Model/Checkout/Plugin/GuestValidation.php(80): Magento\\CheckoutAgreements\\Model\\Checkout\\Plugin\\GuestValidation->validateAgreements()\n#1 /vendor/magento/framework/Interception/Interceptor.php(121): Magento\\CheckoutAgreements\\Model\\Checkout\\Plugin\\GuestValidation->beforeSavePaymentInformationAndPlaceOrder()\n#2 /vendor/magento/framework/Interception/Interceptor.php(153): Magento\\Checkout\\Model\\GuestPaymentInformationManagement\\Interceptor->Magento\\Framework\\Interception\\{closure}()\n#3 /generated/code/Magento/Checkout/Model/GuestPaymentInformationManagement/Interceptor.php(23): Magento\\Checkout\\Model\\GuestPaymentInformationManagement\\Interceptor->___callPlugins()\n#4 [internal function]: Magento\\Checkout\\Model\\GuestPaymentInformationManagement\\Interceptor->savePaymentInformationAndPlaceOrder()\n#5 /vendor/magento/module-webapi/Controller/Rest/SynchronousRequestProcessor.php(95): call_user_func_array()\n#6 /vendor/magento/module-webapi/Controller/Rest.php(195): Magento\\Webapi\\Controller\\Rest\\SynchronousRequestProcessor->process()\n#7 /vendor/magento/framework/Interception/Interceptor.php(58): Magento\\Webapi\\Controller\\Rest->dispatch()\n#8 /vendor/magento/framework/Interception/Interceptor.php(138): Magento\\Webapi\\Controller\\Rest\\Interceptor->___callParent()\n#9 /vendor/magento/framework/Interception/Interceptor.php(153): Magento\\Webapi\\Controller\\Rest\\Interceptor->Magento\\Framework\\Interception\\{closure}()\n#10 /generated/code/Magento/Webapi/Controller/Rest/Interceptor.php(23): Magento\\Webapi\\Controller\\Rest\\Interceptor->___callPlugins()\n#11 /vendor/magento/framework/App/Http.php(116): Magento\\Webapi\\Controller\\Rest\\Interceptor->dispatch()\n#12 /vendor/magento/framework/Interception/Interceptor.php(58): Magento\\Framework\\App\\Http->launch()\n#13 /vendor/magento/framework/Interception/Interceptor.php(138): Magento\\Framework\\App\\Http\\Interceptor->___callParent()\n#14 /vendor/magento/framework/Interception/Interceptor.php(153): Magento\\Framework\\App\\Http\\Interceptor->Magento\\Framework\\Interception\\{closure}()\n#15 /generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\\Framework\\App\\Http\\Interceptor->___callPlugins()\n#16 /vendor/magento/framework/App/Bootstrap.php(264): Magento\\Framework\\App\\Http\\Interceptor->launch()\n#17 /pub/index.php(30): Magento\\Framework\\App\\Bootstrap->run()\n#18 {main}"
}

Apple Pay - error message never displayed

Describe the bug

When no delivery method is available, the following message is displayed: There are no shipping methods available for you right now. Please try again or use an alternative payment method.

reject($t('There are no shipping methods available for you right now. Please try again or use an alternative payment method.'));

Unfortunately this error is never displayed ...

When I check Adyen component ApplePayService and Apple Pay document, reject('My error') is not valid.

Obviously the reject function must be called with an object containing the following information :

  • errors: ApplePayError[]
  • newTotal: ApplePayLineItem

An example that works: Adyen - Step 4: Configure the callback to handle shipping method changes

To Reproduce

  • Selected shipping address with any shipping method
  • Wait 30s for Apple Pay to validate the shipping address (onShippingContactSelect call reject function)
  • Apple Pay display Payment not completed
  • Apple Pay close payment sheet

💥 Redirected back to the checkout, no error message displayed (Magento)

image

Expected behavior

Error message must be displayed in Apple Pay sheet.


Why all reject callback are called with string ? Is this on purpose?

[ECP-8486][ECP-8595] Grand total without tax reported to GPay, Apple Pay

Describe the bug
Magento 2.4.4-p4 + Adyen Express Checkout 1.1.2 + Adyen Payment 8.19.0. Adyen in Test mode.
The grand total without the tax included is reported to GPay and Apple Pay as the final amount. The final amount reported to Adyen, however, will be the grand total with tax, which will (most likely?) cause errors in live system.

To Reproduce
Steps to reproduce the behavior:

  1. Enable express method buttons, for example in minicart.
  2. Add any taxable product to cart.
  3. Click on GPay or Apple Pay express buttons.
  4. The grand total without tax is reported to GPay and Apple Pay as the final amount.

Expected behavior
The grand total with tax included should be reported to GPay and Apple Pay as the final amount.

Screenshots
Screenshot 2023-07-03 at 1 42 41 PM

Desktop (please complete the following information):

  • Any OS
  • Any browser

Smartphone (please complete the following information):

  • Any Device
  • Any OS
  • Any Browser
  • Any Version

Additional context
Probably related to magento/magento2#34649

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.