My credit card offers an option for virtual numbers. You can set the expiration date and max $$ amount for purchases. I just create a new one for each purchase and set the limit for $1 over the sale. Haven't had any issues yet.
Works great for purchases when they try to automatically renew your subscription too. Gevalia hates me.