magento2
magento2 copied to clipboard
Google Pay Payment fails with message error 2099 (The customer's bank declined the transaction because a 3D Secure authentication was not performed during checkout. Have the customer authenticate using 3D Secure, then attempt the authorization again.)
Preconditions and environment
Magento version 2.4.6
Steps to reproduce
3DS enabled from the backend, 3DS enabled via Braintree, Google Pay is set up in Magento and Braintree, including integration with the website. Challenge requested - Configured true Add a product to the cart, proceed to checkout, and place an order via Google Pay.
Expected result
The order should get placed successfully with Google Pay
Actual result
Google Pay Payment fails with message error 2099 (The customer's bank declined the transaction because a 3D Secure authentication was not performed during checkout. Have the customer authenticate using 3D Secure, then attempt the authorization again.)
Additional information
I have reached out to the Braintree support team regarding this error and below is the reply we received from them, hope that will help.
Taking a look at the last Google Pay transactions [p1vbvjr4] we can see indeed a decline with the message: error 2099 - The customer's bank declined the transaction because a 3D Secure authentication was not performed during checkout. Have the customer authenticate using 3D Secure, then attempt the authorization again.
This error was received because the authentication through 3DS was not run for this transaction.
Google Pay transactions are usually out-of-scope for PSD2, however, depending on the tokenization method, you can process 3DS for certain transactions.
While some are tokenized card data, which means Braintree receives a DPAN in lieu of actual card data, other Google Pay payment methods are non-network tokenized (meaning Braintree receives actual card data, just from Google).
The latter, since it's actual card data, is subject to PSD2 and requires 3D Secure as a result. As non-network tokenized Google Pay payment methods fall under PSD2, you'll need to ensure that your integration is passing non-network tokenized Google Pay payment methods to 3D Secure.
In order to do that, check if your Google Pay nonce is non-network tokenized using the code below: if (nonce.isNetworkTokenized === false) { // eligible for 3DS Verification }
Then, if details.is_network_tokenized is returned as false from the PaymentMethodNonce object, pass the nonce to threeDSecureParameters: var threeDSecureParameters = { amount: '500.00', nonce: GOOGLE_PAY_NONCE, // Use Google Pay nonce email: '[email protected]', billingAddress: {// see example above },additionalInformation: {// see example above }, onLookupComplete: function (data, next) {next();}};" This should prevent 2099 - Cardholder Authentication Required, a 3D Secure specific decline, for Google Pay non-network tokenized card transactions. Some Google Pay cards aren't eligible for 3DS as we don't have the real card data. Cards that weren't tokenized by Google are eligible for 3DS.
As you mentioned, you are currently working with Gene Magento, It's important to keep in mind that the Magento payment plug-in wasn't developed by Braintree, and we have very limited insight into their integration. With that in mind, I strongly recommend reaching out to the Magento support team for more insight about the integration. You can always feel free to share with us any communications you have with them so that we can chime in to offer clarity whenever appropriate.
Release note
No response
Triage and priority
- [X] Severity: S0 - Affects critical data or functionality and leaves users without workaround.
- [ ] Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
- [ ] Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
- [ ] Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
- [ ] Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.
Hi @ameerpotrik. Thank you for your report. To speed up processing of this issue, make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, Add a comment to the issue:
-
@magento give me 2.4-develop instance
- upcoming 2.4.x release - For more details, review the Magento Contributor Assistant documentation.
- Add a comment to assign the issue:
@magento I am working on this
- To learn more about issue processing workflow, refer to the Code Contributions.
Join Magento Community Engineering Slack and ask your questions in #github channel. :warning: According to the Magento Contribution requirements, all issues must go through the Community Contributions Triage process. Community Contributions Triage is a public meeting. :clock10: You can find the schedule on the Magento Community Calendar page. :telephone_receiver: The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, join the Community Contributions Triage session to discuss the appropriate ticket.
Was this issue reproducible?
@magento give me 2.4-develop instance
Hi @engcom-Delta. Thank you for your request. I'm working on Magento instance for you.
Hi @engcom-Delta, here is your Magento Instance: https://b4444139337df1d99d62df03930c4b1f.instances-prod.magento-community.engineering Admin access: https://b4444139337df1d99d62df03930c4b1f.instances-prod.magento-community.engineering/admin_4b71 Login: 1a3af280 Password: 1a915864b42d
Hi @engcom-Delta. Thank you for working on this issue. In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:
- [ ] 1. Verify that issue has all the required information. (Preconditions, Steps to reproduce, Expected result, Actual result).
- [ ] 2. Verify that issue has a meaningful description and provides enough information to reproduce the issue.
- [ ] 3. Add
Area: XXXXX
label to the ticket, indicating the functional areas it may be related to. - [ ] 4. Verify that the issue is reproducible on
2.4-develop
branchDetails
- Add the comment@magento give me 2.4-develop instance
to deploy test instance on Magento infrastructure.
- If the issue is reproducible on2.4-develop
branch, please, add the labelReproduced on 2.4.x
.
- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here! - [ ] 5. Add label
Issue: Confirmed
once verification is complete. - [ ] 6. Make sure that automatic system confirms that report has been added to the backlog.
Hello @engcom-Delta , what are the next action steps?
Hello @engcom-Delta, were you able to reproduce the error?
@ameerpotrik we have been experiencing the same issue. Having spoken to braintree/gene they believe a fix has been implemented in Magento v2.4.7-beta2 but obviously still in beta
@Henryrchurchill Thank you for sharing your experience. It's reassuring to hear that a fix has been implemented in Magento v2.4.7-beta2. We look forward to the stable release of this version to address the Google Pay payment issue.
I understood that this is fixed in Magento v2.4.7-beta2.
How can we fix this issue on Magento ver. 2.4.5-p1 manually?
Hi @engcom-Dash. Thank you for working on this issue. In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:
-
- Verify that issue has all the required information. (Preconditions, Steps to reproduce, Expected result, Actual result).
-
- Verify that issue has a meaningful description and provides enough information to reproduce the issue.
-
- Add
Area: XXXXX
label to the ticket, indicating the functional areas it may be related to.
- Add
-
- Verify that the issue is reproducible on
2.4-develop
branchDetails
- Add the comment@magento give me 2.4-develop instance
to deploy test instance on Magento infrastructure.
- If the issue is reproducible on2.4-develop
branch, please, add the labelReproduced on 2.4.x
.
- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!
- Verify that the issue is reproducible on
- Join Magento Community Engineering Slack and ask your questions in #github channel.
Hi @ameerpotrik
Thanks for reporting and collaboration.
Verified the issue in Magento v2.4.7-beta2 and magento 2.4 dev instance but the issue is not reproducible.
For a fix in Magento ver. 2.4.5-p1 manually we will get back to you on this.
Thanks.
@ameerpotrik i have the same issue on 2.4.6-p3. Do you have a fix for it? I just see that gene commerce release new version 4.6.1 (https://support.gene.co.uk/support/solutions/articles/35000228529-braintree-release-notes-for-v4-6-1-adobe-commerce-magento-open-source-v2-4-7-) with the feature "3DS support for Google Pay".
@magento give me 2.4-develop instance
Hi @engcom-Dash. Thank you for your request. I'm working on Magento instance for you.
Hi @engcom-Dash, here is your Magento Instance: https://b4444139337df1d99d62df03930c4b1f.instances-prod.magento-community.engineering Admin access: https://b4444139337df1d99d62df03930c4b1f.instances-prod.magento-community.engineering/admin_7c02 Login: db11d8c8 Password: f17c56036579
@engcom-Dash i just opened a ticket with gene support. i hope they'll reply so i will be able to share the answer.