Chapter 7. Software Delivery and Customer Database via PayPal

Description. Provides the infrastructure around customers using PayPal to purchase software download. This includes generating a 3 day download key, building a customer database, and re-issuing download key.

Solves. Enables small firms and startup to quickly implement download services without impacting their key developers.

7.1. Introduction

This is a back-end business process that provides the infrastructure to take payment for a software product and deliver that product via a high-speed download service. The client facing parts are the notification processes and the keyed download URL

The description, and current useage, focuses on payed software downloads. This technology can also be used for:

  • Payed book or manual downloads

  • Payed support with access login information emailed to client

  • Payed access to web-casts or video streaming products with access login emailed to client.

  • Payed access to events with notification via web and email. Also, registered attendees list generated from database.

7.1.1. Problem Addresses

Many of todays startups have products that can be sold as downloads or streaming services. With limited development resources available to the startup the focus needs to be on core value added technology. This payment and service delivery platform allows the startup to out source infrastructure development which enables their developer to remain focused on what differentiates them

7.1.2. Concept

Leverage technology used by SQI to craft a business process for selling and delivering software via web download. The process would include:

  • PayPal payment. Use PayPal as the billing process and the PayPal APIs to validate billing process.

  • PayPal API callback to trigger delivery process. Interface with the PayPal APIs to receive "call back" message when billing transaction is complete. Note that this bill cycle can tack from a couple of seconds for credit card charges up to a number of days for ETF transfers. The business process has to be able to accommodate this range of transaction speeds.

  • Trigger enabling software download. Once validation from PayPal is received generate the software download transaction which includes:

    • User account. See if user already exists. If not create account.

    • Transaction. Create transaction recode in database. This is populated with data from subsequent steps.

    • Download Key. Generate download key(s) in the form of a url to activate download. Establish active life of key - 3 days is common. Put in transaction database.

    • Web notification. Display web page acknowledging successful bill and present download url (keyed).

    • Email notification. Send user transaction details and download URL(s) via email.

    • Other notifications. Send user other notification such as how to get support.

  • Keyed download URL. Provide the web server scripts to recognize and validate a URL that points to a specific transaction. Once validated for both transaction and still within time frame the specified download is enabled.

  • Exception processes. Provide exception processes such as:

    • Resend download keys - URL

    • Extend valid download time

    • Regenerate download transaction

7.2. User View

The user view of the download platform is the notification via a web page and/or email. Figure 7.1, “Email notification to user with keyed download URL” shows a typical email notification, in this case a reissues of the keyed download URL. This email notification, just like the web-based notification, is constructed from standard text for the package and transaction specific URL and MD5SUM.

Figure 7.1. Email notification to user with keyed download URL

Email notification to user with keyed download URL

The most important feature about the email notification is the keyed URL. When that link is click it triggers a process that validate the transaction to be valid and the download time frame to still be active.

[Note]Note

This download delivery is in the "clear." However, for more sensitive material a public/private key encryption could be added.

7.3. Backend Operations

This section presents an overview of the "back end" business processes that are not viable to the end users. These are the functions of interest to the business managers and systems administration.

Figure 7.2.  View of Data Structures

View of Data Structures

The Software Delivery and Customer Database Platform, as shown in Figure 7.2, “ View of Data Structures”, has four main data structures:

  • Package records

  • Invoice records

  • Account records

  • Transaction records

  • Notification records

These data structures and the views that combine them are discusses below.

7.3.1. Packages and Invoices

The Package is the data structure for the product being sold. The screenshots below are from www.vectorlinux.com which uses this SQI technology platform. In the VectorLinux case, as shown in Figure 7.3, “Software Packages for Sale”, there are 4 paid download products.

Figure 7.3. Software Packages for Sale

Software Packages for Sale

Figure 7.4, “Details of a Software Package” shows the detail view of the Vector Linux 5.9 Standard Gold Installation CD package. System ID, external Item Number, Name Currency, and Price ($1.00 during test)are the descriptive fields of a Package. Also associated wit the package is one or more files to download.

Figure 7.4. Details of a Software Package

Details of a Software Package

Once the Packages are loaded we are ready for PayPal sales transaction.

The Transaction data structure is the heart of the system. Once a PayPal payment process is completed the PayPal system notifies the SQI Software Download Platform (a program call back) with the PayPal transaction number and details. This triggers the creation of a Transaction record and the associated transaction processes.

Figure 7.5. Details Associated with and Invoice

Details Associated with and Invoice

????

Figure 7.6. Invoice List

Invoice List

7.3.2. Client Accounts and Account Detail

???

Figure 7.7. Client Account Listing

Client Account Listing

Figure 7.8. Client Account Details

Client Account Details

7.3.3. Transactions

???

Figure 7.9. Transaction List

Transaction List

??? ALL COMPONENTS OF A TRANSACTION - payment, generate keys, follow-up email

Figure 7.10. Transaction Detail

Transaction Detail

InfraComps/ChapPayPal (last edited 2008-10-20 01:17:09 by jeff)