In general it's a good idea to separate internal billing/invoicing/plan management from your payment provider. Not always easy though as providers often have slightly different abstractions.
Same, just wrote my own billing system that supports Stripe and a few other payment methods (e.g. bank transfer), still very painful to get it right though.