Selling digital goods is trickier than subscription sales. For one, the user normally downloads a digital asset after making their purchase. This may be a music or video file, but it could also be a software download, a serial number and/or a registration key.
Providing downloads complicates the matter in part because of potential for delays in payment authorization. When selling a physical product, there is usually time between the purchase request and packaging and shipping. This interval allows the payment processor to authorize and charge payment.
Most users expect a digital download almost immediately, leaving us little time to verify whether the user's payment is legitimate. This opens the possibility for fraud or other failure states. Fortunately, the big payment processing services have taken many steps to solve these problems with little inconvenience to the customer or our application's usability.
After purchase, customers are typically given a special URL download...