#DLAN-Subscription

1 messages · Page 1 of 1 (latest)

muted widget
echo plinth
#

Also, it seems if the user already has a default payment method from a previous subscription, then the new subscription doesn’t even enter an inactive state, it just immediately enters ‘trialing’ without providing a chance to confirm the subscription. I am not sure how to handle the transition here the way I am expecting it to flow.

#

I am not even seeing a status=‘incomplete’ on my subscriptions, it just goes straight to status=‘trialing’ after calling Subscription.create()

muted widget
#

👋 Give me a few mins to catch up

echo plinth
#

Thanks

muted widget
#

When the user selects a “price” and moves to the “subscribe” page, the subscription is already created and attached to their account. If they decide to click cancel and select a different subscription, they now show as already being subscribed
This doesn't sound correct to me. Generally I would defer to logic to create Subscription until my customer click on "Accept" or smth. Maybe the example you see doesn't cover that spot and just demonstrate a way to use the API

#

What is the right way to delay creating a subscription until after they have confirmed they want to subscribe after entering payment information?
You mean you still want to collect customer's payment info, but later on asking them really want to subscribe?

echo plinth
#

No, once they enter the payment info, the form has the “subscribe” button that finalizes the transaction. So it would go

Pick subscription -> review selection and enter payment info -> complete

#

The example is the one provided by the stripe API, stripe samples create subscription-use-cases

#

It’s flow is

Register for account -> select price from list (once selected, the create-subscription API point is called) -> enter payment info

#

The second step returns the client secret from the created subscription which is passed to the card form to link it all together

#

So I guess what I would be looking for is a way to create that client secret without putting the subscription in an active state, then once the payment info is processed (or if they already have payment info, once they confirm the details are correct and consent to pay for it), then the subscription is set to an active state

#

I might have a fundamental misunderstanding on how subscriptions are meant to be used within stripe, but it seems odd to me that the subscription is created before anything is finalized

#

Reading through the docs more, it seems since I have a free trial, the subscription goes through immediately once created.

muted widget
#

The Subscription could be created, but with a status of incomplete. Its status will change according to the result of first Payment Confirmation

#

(My colleague @real roost would be here to help you soon)

echo plinth
#

Thanks for your help

real roost
#

Hi @echo plinth give me a sec to catch up

muted widget
#

It has the detailed explanation about Subscription lifecycle, and the relation with its Payment

echo plinth
#

I think I might just need to adjust my flow. When they select a subscription, I just need to have a separate confirmation page outside of any stripe dialog and indicate the subscription is active (in trial) at that point. Then direct them to “save time later by entering card details now” or something, but make it clear it is not required at that point

real roost
#

Hi @echo plinth you can build the subscription easily with Stripe Checkout, and Stripe Checkout won't create a subscription unless the checkout flow is completed, is this something that you want to explore?

echo plinth
#

No, I’d rather keep everything integrated. I assume there should be a way to mirror behavior though.

real roost
#

OK, in the case you might want to adjust the flow and defer the subscription creation

echo plinth
#

Is it possible to create the subscription and collect the card info at the same time? Or would I just let one button handle the submission, but on the backend I am processing them sequentially as I am now, just appearing to be a single action from the user’s perspective?

real roost
#

You can collect the payment method up-front via SetupIntent, and set the collected payment_method to the customer's invoice_settings.default_payment_method

And once your customer has decided what to subscribe, then you just call Stripe API to create the subscription.

echo plinth
#

Okay I think I can work with that, thanks. I will keep playing around and see what I can figure out.