I'm currently integrating Stripe subscriptions into my SaaS product. I'm not far in but it is already making me nervous because it seems like there are so many points of failure. For example:
If the same user makes it to Stripe Checkout twice and completes the payment form both times, they'll now have TWO active monthly subscriptions (or more if they keep going) for the same product.
If I miss a webhook cancelling a subscription I could be charging a customer indefinitely without them knowing.
If I accidentally set the wrong Price ID in my .env variables I could be signing up customers under the wrong pricing tier.
If I sign up a customer to Stripe but miss the webhook that they paid successfully I could be charging them without providing the service.
The list goes on and on, and this is while using their hosted Checkout and Portal pages that are supposed to make things super simple. Obviously I plan on building ways to try to prevent those issues, and I plan on doing a lot of testing but there just seems to be so many moving parts. This is the kind of solution that would normally make me nervous but since it involves real money it really just leaves me with a bad feeling.