We're built on Rails which has the extreme luxury of being able to use ActiveMerchant, which does exactly this. The problem is, abstraction falls apart when you're using functions that are specific to a product. Stripe Connect is is nearly impossible to replicate with an adapter.