Recurly does this. You simply need to track usage on your side and post it to the Recurly API. We support 'metered billing'.
[Full disclosure - I am a co-founder of Recurly and therefore biased...but objective]
Here is a demo video for how you would accomplish variable amount billing using Recurly's API.
Video: Variable or Tiered Pricing tutorial for recurring billing with Recurly
Docs for this scenario.
http://docs.recurly.com/subscription-plans/metered-billing
Cheers
Dan