Table of Contents
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.
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
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.
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 This download delivery is in the "clear." However, for more sensitive material a public/private key encryption could be added. |
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.
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 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.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.
Once the Packages are loaded we are ready for PayPal sales transaction.
???
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.
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.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.
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.


![[Note]](/wiki/docbook/images/note.png)








