I used to use one-off "virtual" credit card numbers for this kind of thing. My bank (MBNA, at the time) let me set a balance limit and / or expiration date. It was exceedingly handy, so the feature was axed when Chase acquired them.
Capital One has something like this but when I read the fine print I got the impression that it didn't work for this for subscription services. Something like how they automatically update businesses when you get a new card number due to fraud happens, defeating the purpose as long as it's marked as a subscription service somehow.