#rasgo.cc-3ds-setup

1 messages · Page 1 of 1 (latest)

dull totem
#

however, be aware that any future payment might still require authentication, so you'll need to be prepared with a recovery flow

still sage
#

should I use the SetupIntents and not the PaymentIntents then?

#

Currently my "recovery" flow is quite simple but not ideal: whenever a payment fails (invoice gets "incomplete") I'm sending the customer a Stripe-hosted link so he can complete the payment. When using this Stripe-hosted link (Checkout), is it possible that the customer might have to authenticate his card later on as well?

dull totem
#

Ok hold on, lets take a step back, what is your main payment flow here?

still sage
#

credit cards only. so the flow goes like this: user adds credit card (ie card gets attached to customer), subscription is created, invoice created and payment is attempted

#

recurring payments (SaaS)

dull totem
#

You mentioned checkout. are you using Stripe Checkout to create these subscriptions?

still sage
#

No, the subscription is created through the API. I only use Stripe Checkout as a failover, because my website is not handling the 3D secure, I just send the user the Stripe Checkout / Stripe-hosted link of the invoice so he can complete the payment

#

On the frontend Im using Stripe Elements Card too

umbral dust
#

catching up here one sec

#

@still sage could you quickly summarize your question?

hoary jasper
#

My understanding is that you need to use SetupIntents to collect card details and do 3DS upfront, if you do, we'll be able to skip 3DS on most invoices (though some banks will still require it). When you get an invoice that requires action, you get the customer back on session and they can pay the invoice on the hosted invoice page (totally unrelated to Checkout really). That is the right integration path @still sage and seems like what you are doing already

still sage
#

@hoary jasper thank you! Instead of using the Stripe-hosted invoice page, I'd wish at some point to integrate the same flow on my website though (open popup with bank confirmation or something like that) and proceed with the rest of the things (create subscription etc). Im still confused about using SetupIntents vs PaymentIntents though. Both seem to be appropriate to deal with 3DS. Any reason why I should opt or SetupIntents other than PaymentIntents?

hoary jasper
#

@still sage I worry you're mixing up a bit of every words and products together so it's hard to help

#

You said you are currently attaching the PaymentMethod via paymentMethods.attach() and later having an invoice. Is that what you do? Are you using Subscriptions instead?
Can I ask you to summarize your exact payment flow?

still sage
#

Yes, I'm using subscriptions. But before, if the user doesnt have any payment method I'm asking details for a credit card, so that payment method is created first, attached to the user and set as default payment method. Then I create the subscription which generates an invoice which payment is attempted with default payment method

hoary jasper
#

yeah okay that's your issue :p

#

^ that's the old guide, that likely maps what you were doing

#

Why aren't you using Checkout to start the subscription for you? Is there a reason or you just haven't looked at that product yet?

still sage
#

I believe I haven't looked at it yet, the implementation I have at the moment was initially developed in 2018 I believe

#

I thought the hosted Stripe invoice was part of the Checkout, isn't it?

hoary jasper
#

it is not, they are entirely separate/unrelated products

#

so yeah, my advice is: rip out most of your integration and use Checkout! It's sooooo much easier

still sage
#

there's no extra fee asssociated to Checkout?

hoary jasper
#

no

still sage
#

ok great! thanks for suggesting it. I was already planning to re-write the code to accept payments but this might be indeed the best option