-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.) #37962
Comments
Hi @ameerpotrik. Thank you for your report.
Join Magento Community Engineering Slack and ask your questions in #github channel. |
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 |
Hi @engcom-Delta. Thank you for working on this issue.
|
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.
|
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. |
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: 'test@example.com',
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
The text was updated successfully, but these errors were encountered: