#explas2_api
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1433030376485421056
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
hey ๐ can you share the ID for an example subscription/payment where this happened?
Could it be this one? seti_1SNDXiBSpBHYMs4QoFng8vcc
thanks taking a look
This is my test customer:
cus_SriTDrmdyvdRUx
Everything this customer done yesterday was for the testing purposes.
Basically we are trying to achieve this flow and where it fails:
Customer initiate an upgrade for subscription on our platform -> in backend we do update request with error_if_incomplete flag -> update requires 3DS, so payment fails and we catch and error -> create new setup intent and redirect customer to setup intent url -> page loads, but does not finished and returns to provided return_url -> our webhook gets setup_intent.succeeded event -> we try to do update request for the same subscription again and it fails again because it requires 3DS authentication
so you're creating the setup intent to handle 3DS, or to avoid 3DS being requested?
to handle 3DS so it would be avoided on update request again.
I want client to authorize 3DS, so I could do update on subscription without 3DS action, does it make sense?
it makes sense but I wouldn't recommend that approach, since it's expected that 3DS won't be bypassed on the subscription update (as that's presumed to be an on-session payment)
instead, what you should do is bring the customer on-session to authenticate the payment that requires 3DS
rather than creating and authenticating a SetupIntent
you can do this by calling confirmPayment on the front-end with the PaymentIntent's client_secret
similar to when the subscription is first created: https://docs.stripe.com/billing/subscriptions/build-subscriptions?platform=web&ui=elements#complete-payment
but this means that I cannot use error_if_incomplete flag, so when payment fails because of 3DS, subscription will be updated. I want to avoid this