For the MVP of Buffer, I implemented PayPal (no Stripe back then), but I avoided all the IPN hassles. The IPN is the part that would auto-upgrade people once they paid. The way I did it was to upgrade people manually as soon as I got the email from PayPal that they had paid for the Pro plan.
This turned out to be good for a number of reasons:
1. I had no idea how long it'd be before the first person paid, so why optimize
that flow? Instead I worked on things which would help me get to the first
paying customer.
2. The IPN was the hardest part of PayPal implementation, so it saved me
a lot of time to avoid it. The rest of the implementation can even be done
with their button implementation and no coding experience.
3. Actually people having a slight delay, and my needing to personally email
them, was a great thing. That built a lot of loyalty through the personal contact
and those were some insightful conversations.
This turned out to be good for a number of reasons: