VivaPayments / API

Index of Viva Wallet open source projects on GitHub.
139 stars 162 forks source link

3DS authentication issues with Native Checkout v2 #2078

Closed jonian closed 3 years ago

jonian commented 3 years ago

This issue is extracted from #2073 as suggested by @mavr1982.

Implementation Guide: https://developer.vivawallet.com/online-checkouts/native-checkout-v2

I have implemented Viva Payments in a SaaS application about 6 months ago and everything was working without issues in development and production. The 3DS authentication frame was appearing in every attempted transaction.

Today a client informed me that some of his customers can't complete their payments despite trying with various valid cards.

In development, I tried to test the payments with various cards and the results are not consistent. Some times the payments go through without problems but most of the time I get the following event IDs:

2061: Browser closed before authentication finished.  
2062: Wrong password or two-factor auth code entered.

Also the 3DS frame, sometimes appears blank, sometimes shows the visa/mastercard etc authenticators and other times it does not appear at all. The times the frame appears, it shows for a few seconds and then disappears, without allowing me to select the authentication result, which I could do 6 months ago.

I have had successful and failed payments regardless of the 3DS frame behavior.

The credit cards that I have used in my tests are:

4111 1111 1111 1111     111    01/2030
5511 0700 0000 0020     111    01/2030

I have also tried credit cards from here, in FAQs -> Testing your integration -> Details. They also have the same results as the cards above. Some times they work some times they don't.

Also the admin at https://demo.vivapayments.com/selfcare/en/sales/mysales, throws a lot of JS errors and I can't filter the results, I can't see the failed transactions.

If you need more information, let me know.

mavr1982 commented 3 years ago

Hi @jonian

We are digging on both issues you reported, 3ds validation and JS errors on Demo selfcare dashboard.

I'll keep you posted.

ccastiglioni commented 3 years ago

Hello @mavr1982 and @matthewrgourd I got one of this problems (2062: Wrong password or two-factor auth code entered. ), I'm write here because my issue was closed.. I'd like to give a feel advice. You could put a status inside the demo platform to let you know about its maintenance. because I am 5 days reviewing my code to see if there is an error and in fact I have not changed anything. with this status we can be more carefree and inform our customers .

Add1ctiv3 commented 3 years ago

Hello, do we have an update on this issue? I am trying to integrate the viva payments system (Native checkout v2) on a project and despite following the instructions on the implementation guide (https://developer.vivawallet.com/online-checkouts/native-checkout-v2), the 3DS frame never appears.

I added a alert("SHOW") line in the cardHolderAuthInitiated function and while i get the alert, the panel never appears. The cardHolderAuthFinished works as intended since it hides the panel container.

After a short delay i get the charge token alerted but without the 3DS panel appearing or me passing a verification. In other words I get the charge token back by bypassing the 3DS procedure entirelly.

If you need more information let me know. Thanks in advance and Merry Christmas!

knikolou commented 3 years ago

Dear Admins All my demo ids are not working last week .I have test all my apps and websites (the same code in live environment mode is working fine) 3DS frame sometimes appears and sometimes not...when it appears and pass the value correct it doesn't verify the payment. We are all hardworkers to promote your payment gateway ...We must have an info to demo account if there is any change or maintenance mode ...I am using also paypal ,stripe etc it never happens

Console errors Could not find the cvv input staticjs?v=OebeHuRouKaaxaJVAPdb7oAUaTKGXLlGovqxSvboXUs1:1 Could not find the installments input window.payments @ staticjs?v=OebeHuRouKaaxaJVAPdb7oAUaTKGXLlGovqxSvboXUs1:1 (anonymous) @ staticjs?v=OebeHuRouKaaxaJVAPdb7oAUaTKGXLlGovqxSvboXUs1:1 staticjs?v=OebeHuRouKaaxaJVAPdb7oAUaTKGXLlGovqxSvboXUs1:1 Could not find the installments container When 3DS frame appears and is blank 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:15 [Deprecation] chrome.loadTimes() is deprecated, instead use standardized API: nextHopProtocol in Navigation Timing 2. https://www.chromestatus.com/features/5637885046816768.

d @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 e @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 c.onreadystatechange @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 XMLHttpRequest.send (async) (anonymous) @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 f @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 f @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 requestIdleCallback (async) setImmediate @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 init @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 init @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 (anonymous) @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:15 [Deprecation] chrome.loadTimes() is deprecated, instead use standardized API: Navigation Timing 2. https://www.chromestatus.com/features/5637885046816768. done @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:15 fireEvent @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 page_ready @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 page_ready_autorun @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 f @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 requestIdleCallback (async) setImmediate @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 attach_page_ready @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 init @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 d @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 e @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 c.onreadystatechange @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 XMLHttpRequest.send (async) (anonymous) @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 f @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 f @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 requestIdleCallback (async) setImmediate @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 init @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 init @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:11 (anonymous) @ 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:17 2NDVG-46VMC-FCKUH-V2WWK-ZG2MX:15 [Deprecation] chrome.loadTimes() is deprecated, instead use standardized API: Paint Timing. https://www.chromestatus.com/features/5637885046816768.

matthewrgourd commented 3 years ago

Hi @jonian, we have identified an issue relating to a security upgrade on our platform that affects the behaviour of the test cards. It should be ok again in a few hours but I'll update you when I have further info.

jonian commented 3 years ago

Hi @matthewrgourd, what is the state of this? I still have the same issues.

matthewrgourd commented 3 years ago

Hi @jonian, currently chasing dev team for info. Will provide an update later today. Apologies for any disruption in service.

matthewrgourd commented 3 years ago

Hi @jonian, I have an update for you: the 3DS simulator is provided by Modirum, a third-party company we use. The problem is on their side and unfortunately I currently don't have an ETA for a fix. In the meantime you can use the below cards to simulate successful / unsuccessful outcomes. These bypass the popup and are therefore the equivalent of frictionless transactions:

Long card number Issuer CVC Expiry date 3DS outcome
5188340000000011 Mastercard Any 3 digits Any future date Success
4016360000000010 Visa Any 3 digits Any future date Success
5188340000000029 Mastercard Any 3 digits Any future date Not authenticated
4016360000000028 Visa Any 3 digits Any future date Not authenticated

Hope this helps!

Add1ctiv3 commented 3 years ago

@matthewrgourd Hello again, I am trying to charge the test cards you mention here (with the successful 3ds outcome) and I am still getting

{
  "status": 400
  "message": "PaymentsCardHolderAuthenticationInvalidStatus"
  "eventId": "2061"
}

as a response. I unfortunatelly have a very insistant on deadlines client and we cannot perform any test transactions currently. Any suggestions???

Thanks in advance

Add1ctiv3 commented 3 years ago

Ok there s an update, at least for my case... If you use a test card from here https://developers.mypos.eu/en/doc/online_payments/v1_4/227-test-cards (modirum/cardlink test cards) there is a successful transaction! At least for now...

matthewrgourd commented 3 years ago

Hi @jonian, @Add1ctiv3, apologies, we're still awaiting a fix from our 3DS provider, Modirum, for our test card numbers. @jonaian, did you have any success with the card numbers below suggested by @Add1ctiv3?

https://developers.mypos.eu/en/doc/online_payments/v1_4/227-test-cards

jonian commented 3 years ago

@matthewrgourd Yes some of the cards provided by @Add1ctiv3 give a successful transaction. Still no 3DS simulator and the transaction is successful even with invalid data provided.

Successful with invalid data (exp. date).

4006090000000007    100    05/2020

Payment error 2062: Wrong password or two-factor auth code entered.

4929131949828217    111    05/2021

Did not try the other cards. There is no point in testing cards until the issue is resolved by Modirum.

matthewrgourd commented 3 years ago

Hi all, @jonian, the issue was fixed by Modirum on Tuesday but since then there have been intermittent issues. As a result, we're currently looking into changing 3DS provider for our demo environment. Until then, please try with the below test card numbers: