Chapter��7.��Software Delivery and Customer Database via PayPal

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

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


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


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.


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.


The Package is the data structure for the product being sold. The screenshots below are from 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.



Figure��7.5.��Transaction List

Transaction List

A transaction is generated by PayPal payment process. This data structure is the exact information provided by PayPal. It is stored in a table as "raw" information and then associated into the higher level data structure Invoice.

Figure��7.6.��Transaction Detail

Transaction Detail


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.

Transactions are maintained in the transaction table. However, a Transaction is really one part of the larger Invoice process and is thus shown as it is presented within an Invoice view.

The Invoice is the data structure that contains the details about a transaction. the screenshot in Figure��7.3, ���Software Packages for Sale��� shows the data maintained by Invoice. This includes:

  • Invoice meta data

  • The associated PayPal Transaction data

  • download Token details

  • Copy of outgoing email

Figure��7.7.��Details Associated with and Invoice

Details Associated with and Invoice

Figure��7.8, ���Invoice List��� is a sreenshot of the Invoice data. This is a list of all invoices generated. This view is frequently used to find a specific invoice when you have been given a date or email of user that generated the invoice.

Figure��7.8.��Invoice List

Invoice List

7.3.4.��Client Accounts and Account Detail

Figure��7.9.��Client Account Listing

Client Account Listing

The Client Account is the data structure that holds the metadata for a client and links to all the associated Invoices for the client. Two views of Client Accounts are provided. Figure��7.9, ���Client Account Listing��� is the list view of all client accounts. From the list view the details for any account are accessed by clicking on the link. Figure��7.10, ���Client Account Details��� show the detail view.

Figure��7.10.��Client Account Details

Client Account Details

InfraComps/ChapPayPal (last edited 2015-03-06 18:11:27 by localhost)