adyen / adyen-magento2-express-checkout Goto Github PK
View Code? Open in Web Editor NEWAdyen Magento 2 Express Checkout Module
License: MIT License
Adyen Magento 2 Express Checkout Module
License: MIT License
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:
quote
tablequote
tableExpected behavior
No new database records for customers who did not even initiate an Apple Pay session, such as:
Screenshots
Here's an example of records being created in the quote
table when refreshing a product page quickly a few times.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
This is what looks like the sequence of operations that leads to the creation of quotes each time a product is viewed
I see that it is the Grand Total
label that is displayed when paying via Apple Pay when it should be the merchant’s name. Would it be possible to correct that ?
I see that in module adyen-magento2
, the merchant’s name is displayed.
❌ Bad
✅ Good
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:
Expected behavior
The Google Pay Express Checkout popup does Not close automatically on our website's cart page.
Smartphone (please complete the following information):
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.
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 :
An example that works: Adyen - Step 4: Configure the callback to handle shipping method changes
To Reproduce
Payment not completed
💥 Redirected back to the checkout, no error message displayed (Magento)
Expected behavior
Error message must be displayed in Apple Pay sheet.
Why all reject
callback are called with string ? Is this on purpose?
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:
/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}"
}
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
composer.json
adyen/module-payment ^9
phpunit/phpunit *
magento/magento-coding-standard *
squizlabs/php_codesniffer *
.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
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
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
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.
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"
},
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.
adyen-magento2-express-checkout/view/frontend/web/js/applepay/button.js
Lines 158 to 165 in 80a1f75
Describe the bug
Cannot pay via apple pay Adyen express on cart page.
First Error:
Shipping methods do not load which result in 'Payment not complete' and the error in the console.
Second Error:
Update onShippingContactSelect / onShippingMethodSelect to that of the code in https://github.com/Adyen/adyen-magento2-express-checkout/blob/1.1.2/view/frontend/web/js/applepay/button.js
The error above does not happen anymore, however you still get 'Payment not complete' and the error in the console -
And when you set a breakpoint in vendor/adyen/module-payment/Gateway/Validator/CheckoutResponseValidator.php line 123 you can see the error 'Required object 'paymentMethod' is not provided.'
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Order is submitted and redirected to success page with no errors.
Screenshots
Above.
Desktop (please complete the following information):
Smartphone (please complete the following information):
NA
Additional context
magento/product-enterprise-edition version 2.4.6-p6
adyen/module-payment version 9.6.0
adyen/adyen-magento2-expresscheckout version 2.1.0
On a blank Luma theme with no changes to the module, other than the testing as described above.
Using Adyen Test account.
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.
Example Change:
if (!Object.keys(this.countries).length && !this.fetchingCountries) {
This should help with the load times on the PDP.
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:
Expected behavior
The grand total with tax included should be reported to GPay and Apple Pay as the final amount.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Probably related to magento/magento2#34649
Apple Pay does not provide a phone number for the billing address. You must send the phone number of the contact and not 0000000000
.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
composer.json
adyen/module-payment ^9
phpunit/phpunit *
magento/magento-coding-standard *
squizlabs/php_codesniffer *
.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
Hi,
It is possible to add an option in the admin to select the style of the Apple Pay button ?
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:
Expected behavior
Fast checkout buttons should be visible
Desktop (please complete the following information):
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.