#richie138
1 messages · Page 1 of 1 (latest)
You mentioned "checkout.js". What is that? Can you point to some docs about it?
Oh, that's what someone else told me it is
Here's some code from my signup page if that helps
<form action="/create_subscription.php?plan=growbot_monthly_subscription_699" method="POST" target="_blank">
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_live_yhGGJ1Sd5b79vX5zUxs2sBu2" data-image="icon128.png" data-name="Growbot" data-description="Growbot Monthly Subscription" data-amount="699" data-label="$6.99 monthly">
</script>
<input type="hidden" value="" name="guid" />
</form>
<form action="/create_subscription.php?plan=growbot_yearly_subscription_6999" method="POST" target="_blank">
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_live_yhGGJ1Sd5b79vX5zUxs2sBu2" data-image="icon128.png" data-name="Growbot" data-description="Growbot Yearly Subscription" data-amount="6999" data-label="$69.99 yearly">
</script>
<input type="hidden" value="" name="guid" />
</form>
That looks like some code that calls regular Stripe Checkout, along with some backend functions. That should support 3DS just fine.
When you say it should support it just fine, what does that mean?
Because my users don't see any popup
The user Pompey was helping me, but the the thread got closed
Ahhhh, okay. So it sounds like you're using some legacy version of Checkout called checkout.js. Apologies, I don't have a lot of state on that. To answer your question through:
Looking at this page provided in the error message, https://stripe.com/docs/billing/subscriptions/overview#requires-action, I am wondering if I can build something easily or if there's a bridge so I can authenticate and complete these payments and subscriptions.
For this, I don't think there is an easy bridge, since you essentially need to listen for a webhook that tells you when a Subscription requires 3DS authentication, then bring your customer back into the payment flow to authenticate. It would likely be easier to just move to regular Checkout, but I'm not sure how feasible that is for you
What do you mean when you say bring them back into the payment flow?
Essentially they have entered their payment details and are redirected to some page (presumably), then you get the webhook indicating that 3DS is required, so you have to somehow notify them that they need to go back to some place in your application to complete authentication.
Hmm
I supposed you could instead add a Loading... message or a spinner that forces them to remain on the page while you check to see if 3DS is needed. There might be some other novel workaround, but I'm struggling to think of one.
It's already displaying an error message to them that 3DS is needed
So it already knows, just wondering how to get a popup
Ahhhh, okay. Interesting. Apologies, I'm not very familiar with how that legacy flow is intended to work. Let me see if I can find someone that is
The error that comes back is "Error: Payment for this subscription requires additional user action before it can be completed successfully.Payment can be completed using the Paymentintent associated with 'subscription.latest invoice......"
I'm also using stripe-php
Or php-stripe, whichever you guys call it lol
Okay, so it sounds like (from what I'm discussing with my colleagues) you simply cannot gracefully handle 3DS with this legacy flow and your best bet is going to be to create a new payment flow. As mentioned earlier by @sleek wren, the new version of Checkout is really really easy to use compared to the one you've been using, so that might be a good place to start
Here's the best place to jump off from: https://stripe.com/docs/payments/checkout
If you're like me and want some code to anchor your understanding, here's a quickstart guide: https://stripe.com/docs/checkout/quickstart
Alright thanks, not super thrilled about moving to a new version, since I have some custom logic around the IDs and some other things
But given that 3DS seems to be getting more prevalent I might have to
Yeah I can understand that. I hate giving that answer, but hopefully this will be an effective way of mitigating any further technical debt that arises from having an outdated workflow.
As always, we're here to help you get up and running, so if you get blocked please do come back and let us help
Thank you