I'm a little stuck on the "big picture": a freemium SaaS app. Right now, it's just free, not freemium. :-) I understand all the "small" pieces like the webhooks, API's, ways to implement my server-side parts, but it looks like there are a few tough points:
When should the user account in the app be created? Before or after signing in with the payment service?
If it's before, how does that user info get communicated to the payment service?
How much redundant info should get stored in the app? I.e., what should the app do with the incoming web hook POSTs?
Way long ago, I had a simple but effective setup with Paypal Subscriptions:
Users had to first create an account using an OAuth source like Google (No passwords stored in my db!)
With that email address, I'd populate a Paypal Subscribe button which would launch a hosted form.
When the webhook received a POST, I'd keep just the payment notifications in a big table.
When a user came back to log in, I'd check if they had made a payment in the last 30 days.
Easy! :-) But that's a bit primitive, and not sure if it's the recommended practice. E.g., I believe that one practice is to pro-actively create a user account via the payment system's API when a user first signs up in the app...
02-14-2020 11:31 AM