Chapter 9. Selling Digital Goods

Selling digital goods and content presents unique challenges for e-commerce developers. Though we don't need to worry about calculating shipping and coordinating physical delivery, we do need to consider new factors, such as securing download links and quickly verifying payments. This chapter will examine the following advanced topics:

  • Using Amazon S3 for secure content-storage and delivery
  • Adding S3 storage to Django's file and image fields
  • Creating functions for working with Amazon's Aggregated Payments Service
  • Examining the use of Digital Delivery with Google Checkout

Different types of digital sales have different requirements. Selling a subscription service is simpler than selling digital music or video files, for example. We will begin with a survey of these two kinds of sales and present the technology considerations for each. We'll then examine the features of Amazon and Google's digital payment services and develop a rudimentary infrastructure for handling them in Django.

Subscription sales

A subscription-based sale describes a situation where our web application provides access to a service for a fee on a recurring basis. This could be monthly, but it isn't always. In the digital world, weekly or even daily subscriptions might make sense.

The issue of payment is complicated in subscription sales by automatic renewals. Until recently, recurring subscription payments were not well supported in popular payment processors. This is changing quickly and both Amazon FPS and Google Checkout now offer built-in support for this type of payment.

A big advantage of subscription support in a payment service provider is that the renewal process is handled automatically. The customer is billed and given a receipt, while our applications are notified of the new order. Using some of the payment processing techniques discussed earlier in this book, very little human intervention is needed. The payment processor can also provide reminders, history, and other information to subscribers about their payments.

Subscription services are useful in a wide variety of applications. The example that immediately springs to mind is a content site that charges for access to premium content. But this doesn't necessarily need to be text-based content. For example, this type of payment is often used for access to web or desktop-based software. It could also provide access to video or audio content, through a web browser or desktop application.

Our applications for this type of service would need to keep track of user access level and subscription status. When their subscription expires, the user's account should be updated to prevent access. In Django, the built-in permissions system is rather simple, but could be used to satisfy this need.

More complicated subscription tracking could be handled using a user profile model or specialized Django application that tracks and manages subscription access.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset