Payments

How to design a payment system that charges a customer correctly, exactly once.