The Internet Business Cards System

by Daniel Sabsay, v1.16 Aug 5, 2000


Overview

The Internet Business Card system consists of two web servers, three databases, several CGIs, applets, servelets and image libraries. The two servers are known as (1) The Application server, and (2) The Affiliate server. These servers are generally run on separate computers, but this is not strictly necessary. Both websites use hidden state variables, not "cookies" to provide session continuity and to track Affiliate identity. In addition, the system utilizes an external server called AuthorizeNet to provide payment gateway services.

All webpages in both websites are dynamically built by the CGIs from memory-resident HTML templates (including a common footer) by substituting "<!INCLUDE:xxx>" markers for the current value of the associated variable. The exception is the home page for each Affiliate which is built once by the Affiliate server from a master local template, and then transferred by FTP to a dynamically-created folder on the Application server. Thereafter, they are served as static HTML pages by the Application server.

(back to top)


The Application Server

The Application server handles all the high-traffic webpages requiring image display and custom image generation. This server also provides the secure credit card ordering form to the customer, but the form's data is actually sent directly to the AuthorizeNet server by the customer's web browser using SSL. AuthorizeNet then sends the results of this payment transaction to the Application server on a secure (HTTPS) link. Using these results, the Application server returns a confirmation page to the customer, and sends the order to the Affiliate server by e-mail (with credit card data scrambled). This server also provides FTP services for remote upload of new Affiliate home folders.

(back to top)


Application CGIs, servelets and applets

(back to top)


Application templates and libraries

(back to top)


The Affiliate Server

The Affiliate server handles customers who want to register as Affiliates, and provides registered Affiliates with web-based status and update capability. In addition, this server automatically receives batches of customer orders sent by e-mail from the Application server, and handles the fulfillment process for these orders.

The server uses three linked FileMaker Pro databases to register Affiliates and record customer orders. The IBC administrator can use a remote FileMaker Pro application to review and edit any data in these databases. When an order arrives by e-mail, a confirmation message is automatically sent to the customer along with a low-resolution version of the custom card image. (If the customer has ordered a high resolution image, it is sent instead.) For printed card orders, a high resolution image is sent to the appropriate printer by email along with a PDF file containing the customer's invoice. All JPEG images are custom-created with local libraries using the BOTT format.

When the printer has shipped the order, he simply replies to the orginal e-mail message. The system automatically receives these replies, and sends a shipping notification to the customer by e-mail. Orders flagged for future payment by check are held in the database and reported to the system administrator by e-mail. When the administrator replies to these original e-mail messages, they automatically re-activate the delayed order. Additional e-mail messages are sent to the administrator when an Affiliate registers, terminates, leaves a message, or requests payment. There is also a message sent to an Affiliate who has forgotten his password. Replies from e-mails sent to the administrator requesting payment or termination automatically update the database.

(back to top)


Affiliate CGIs, servelets and databases

(back to top)


Affiliate templates and libraries

(back to top)


BOTT Technology Basics

All images generated and displayed by this system use the Comments feature of the JPEG format to store extra text containing the name of the base image, as well as the content, style and position of the text lines overlayed onto the image. This allows the software to retrieve the text and re-edit the composite image at any time. Images of this type are used in the 08CATsmall segmented folder (see below) to provide a library of images with sample (default) text. The current system uses 4 image sizes (1) small ? x ?, (2) medium 248 x 152 pixel, (3) large 440 x 250 pixel and (4) hi-rez ? x ?.

(back to top)


The Order Form

All data fields from the 14order.html order form are sent to AuthorizeNet and returned to design.acgi with some additions (AuthorizeNet field names are preceded by "x_"). Design.acgi deletes the field x_card_num (credit card number) from the package for security reasons, and sends the rest to Master_Control where they are selectively imported by script "Load Order Fields". Each imported field is extracted from the e-mail message and stored in the appropriate database field by a three step sequence (1) SET the fieldname into global variable _keyword, (2) PERFORM "Load a Field" and (3) SET global variable _field_value into the target database field. Target field names in Master_Control are generally not the same as the field names in 14order.html

(back to top)