#fvmartin-3DS-subscriptions
1 messages · Page 1 of 1 (latest)
Hello, can you tell me a bit more about your integration? Are you using Elements or Checkout?
Hello Pompey,
I'm using the PHP library, like this:
$args = array(
'customer' => $stripe_customer_id,
'default_payment_method' => $payment_method_id,
'items' => [
['price' => $price_id ],
],
);
$args['billing_cycle_anchor'] = strtotime($date_end);
$sub = \Stripe\Subscription::create( $args );
That is server side, how are you serving this client side?
Looking at the docs it's not clear to me if the Subscription object contains any details about the 3DS: https://stripe.com/docs/api/subscriptions/object
I'm migrating subscriptions from other system, it's all server side.
How are you collecting Payment Details?
It's from Memberful, which gave us a list of Stripe customer Ids.
The customer ids and payment method Ids are in the Stripe account.
And we are re-creating the subscriptions.
And I wonder if any of the customers might be a mobile text message when the subscriptions are being created.
It happened to me when testing Stripe Checkout with a set customer ID - I did that on staging and the user got message on his mobile...
So perhaps this issue only occurs on Stripe Checkou and the server-side API with secret key is safe. I'm failing to find answer anywhere.
I am a bit unclear on this setup. Memberful wrote the Stripe integration for you to collect all of these card details and then gives you Stripe PaymentMethod and Customer objects to make the subscriptions yourself?
Subscriptions will tell you when a related payment needs 3DS auth through the requires_action status which indicated you should prompt your customer for 3DS auth again
They run a subscription service which utilizes Stripe. We are migrating a client to Stripe Subscriptions from them.
I do not see "requires_action" on https://stripe.com/docs/api/subscriptions/create
But I see it on https://stripe.com/docs/billing/subscriptions/overview
So can we just setup all the subscriptions and some of them will return with the "requires_action" status?
So no text message will be sent to the client mobile until we try to set it up again and "prompt your customer for 3DS auth again" ?
I have a card which requires 3DS and I paid with it yesterday on the website.
Now I created a new subscription with it using the payment method ID and it didn't return the "requires_action" status.
Sorry about 2/3 questions at once.
Your users will not receive a text message when you try to make an off session payment to create these subscriptions.
One moment for the rest.
When you get requires_action on the PaymentIntent for one of these off session payments, you will need to reach out to your customer to get them back to your app to re-enter their payment method info https://stripe.com/docs/billing/subscriptions/overview#build-your-own-handling-for-recurring-charge-failures
Or is Memberful supposed to re-collect that? They may be better versed in how this works in the setup you have with them if this is a common setup
We only setup the subscription. I do not see the payment intent in it.
Do I need to look better, or does that payment intent occur when the renewal date comes and the card is going to be charged?
Each Invoice that the subscription generates will have a PaymentIntent
As the doc I linked to says, you will want to listen to the customer.subscription.updated event to see when the subscription enters a past_due state which is when you will want to reach out to collect new payment method details
You are also right that the first payment may require 3DS so you will want to check the status of the first Invoice's PaymentIntent to see if it is requires_action after you try to charge that first payment as well.
Thank you for all the information.
So can we safely create all the subscriptions and not worry about 3DS?
Then once the subscriptions renew some of them will simply fail, but users won't get text messages on mobile?
Right, Stripe doesn't send text messages for 3DS. That would be the bank itself when they are actually going through the auth
I get that, but just using the API won't do that, that's what I needed to know.
It was good talking to you, every sentence was full of valuable information!
Have a nice rest of the day, bye!
Of course, happy to help