I built my own hybrid billing system and yes it was painful, but it opened the door to more payment methods and allowed prorating across the different payment methods seamlessly. I think it increased my revenue, but I can't know for sure because maybe everyone would have just used credit cards if that was the only supported payment method.
Just integrated with payment APIs Stripe, Braintree & Coinbase. I let them handle recurring transactions while my system handles setting up those recurring transactions including pricing, prorating, discounts, and trials.