Skip to content
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

Users can submit the Pay button twice before 3DS view pops up #403

Closed
siavash-mohseni opened this issue Jun 2, 2023 · 4 comments
Closed

Comments

@siavash-mohseni
Copy link

Describe the bug
In our usage once submitted and waiting for the 3DS screen to pop up, there is a few seconds (especially on slower phones) and users can resubmit the Pay button.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the payment details page and enter your card details
  2. Click on the Pay button
  3. Button shows a loading animation
  4. Right before the 3DS screen pops up, the Pay button is tappable again and can cause double payments if submitted

Expected behavior
In Android SDK we have an onSubmit event that we use to show a progress indicator while the payment is in progress. It will block user interactions. In iOS there is no such event.

@patrick-hoban-cko
Copy link
Contributor

Hi @siavash-mohseni, thanks for raising this.

Which version of Frames-iOS are you using?

Thanks,

Patrick

@siavash-mohseni
Copy link
Author

Hi @patrick-hoban-cko, it is 4.0.4.
Thanks

@melting-snowman
Copy link
Contributor

melting-snowman commented Jun 5, 2023

Hi @siavash-mohseni ,

The full payment flow is made off:

  1. tokenisation (SDK Payment Form with Pay button)
  2. processing (Application using the token for payment request)
  3. 3DS (SDK optional if additional security check is requested)

As mentioned, the SDK is responsible for steps 1 and 3, but is unaware of step 2. We have reviewed this shortcoming, but at this stage of the product we are unable to integrate it (maybe something to discover for the future @patrick-hoban-cko , @deepesh-vasthimal-cko).

As such, the application is responsible for the state during step 2. Some options we could recommend may be:

  • dismiss the tokenisation (/Payment Form) screen on the completion of the flow. This would allow you to show your branded app level screen between the steps. Since 3DS is not guaranteed to occur, this can be treated as a standard payment processing state.
  • add another overlay over the payment form preventing gestures. This is up to your design and journeys, but seems to me it may be harder to get right. Might work best if you have a full screen loading state that gets presented over the Frames VC. However it will complicate your navigation stack so need to be considerate of how you build & dismiss.

Let us know if we can help further,

Thank you,

Alex

@siavash-mohseni
Copy link
Author

Hi @alex-ioja-yang-cko,
I think your first suggestion should do it. We are currently testing a solution with that.

Thank you for your complete response.

Siavash

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants