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

SPIKE: 3DS #72

Closed
Tracked by #111 ...
dallashuggins opened this issue Nov 15, 2021 · 1 comment · Fixed by #129
Closed
Tracked by #111 ...

SPIKE: 3DS #72

dallashuggins opened this issue Nov 15, 2021 · 1 comment · Fixed by #129
Assignees
Labels
spike Spike story Story

Comments

@dallashuggins
Copy link
Contributor

Overview

Since we need to support 3DS verification, this is a for doing research and testing so we can know exactly what needs to happen for implementation.

Additional context

Questions to look into

  • Is Circle's 3DS support only in the Sandbox environment?
  • We need a success/error page for the user to return to upon successful verification or an error. What is needed for this?
  • How would the payment flow change?
  • Can we programmatically determine what countries require 3DS?
  • What countries require 3DS?
@dallashuggins dallashuggins added the story Story label Nov 15, 2021
This was referenced Nov 15, 2021
@smonn smonn self-assigned this Nov 29, 2021
@smonn smonn added the spike Spike label Nov 29, 2021
@smonn
Copy link
Contributor

smonn commented Nov 30, 2021

Still waiting to confirm if this is available in non-sandbox, but it seems we can implement this like the following:

  1. Initiate payment as we do today, but set verification to three_d_secure (and the success/failure URLs accordingly).
  2. Wait for status for the payment. If the status appears like the below example, then redirect from the checkout page to the 3D Secure page. Upon return, proceed with status checks and then continue with regular flow.
{
  data: {
    id: '<Redacted UUID>',
    type: 'payment',
    merchantId: '<Redacted UUID>',
    merchantWalletId: '<Redacted ID>',
    source: { id: '<Redacted UUID>', type: 'card' },
    description: 'Payment Test',
    amount: { amount: '5.66', currency: 'USD' },
    status: 'action_required',
    requiredAction: {
      type: 'three_d_secure_required',
      redirectUrl: 'https://web-sandbox.circle.com/v1/3ds/session/<Redacted UUID>'
    },
    refunds: [],
    createDate: '2021-11-30T18:07:28.852Z',
    updateDate: '2021-11-30T18:07:29.301067Z',
    metadata: { email: '<Redacted Email Address>' }
  }
}

If we encounter a failure in the 3D Secure flow (meaning we end up on the failure URL), then display a similar payment error message as we do today.

All of this also, probably, means we don't have to worry about which country the payment is originating from, Circle will direct us into the right flow as needed. Still waiting for confirmation on this part too.

@smonn smonn linked a pull request Dec 2, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spike Spike story Story
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants