ProtoBase and the Charge Cards module
When a sale is paid for at the web site with a credit card, the necessary information is specified by the visitor/guest. ww.dll takes the card number and tries to get a pre-approval before forwarding the sale to Sales Host. ProtoBase is the credit card processing system most frequently used with E-Commerce module. However, ProtoBase is just one of the credit card processing systems supported by the Salesware Charge Cards and E-Commerce modules. Once ww.dll gets pre-approval from ProtoBase for a credit card charge, it passes the approval number for the transaction with the information for the sale to Sales Host via the ww_sales table.
Note: In some countries, the entire credit card transaction is handled directly by the E-Commerce pages with no involvement by Sales Host. But normally Sales Host completes the transaction after receiving pre-approval from the pages.
A sale can be processed by ww.dll that to the Sales Host creates an error. In that case, when the sale information hits the Sales Host, an error occurs and is displayed on the Sales Host interface. An example of when this can happen is when adding a new item to the item tree. The item displays correctly and is sold successfully from the web pages. However, until the item tree is updated at the Sales Host, an error occurs when a sale with that new item in it is processed by Sales Host. Sales Host can be paused, local errors can be viewed, corrections can be made and a sale can be submitted for reprocessing. (The Sales Host dialog tells you how many errors occurred and the Local Errors button can be used to access the details about those errors.)
The following diagram shows how a credit card is processed in E-Commerce module. The diagram is followed by a description of the numbered steps shown in the diagram.
1. Sale information is collected and processed by ww.dll. In this example, the pages are hosted on one web server and ww.dll is hosted on another, but both can be on the same server, behind the firewall (open firewall port 443 instead of 80). When they are on separate servers, the information is encrypted via XML and passed through a firewall. The pages perform filtering and input validation to combat SQL injection attacks.
2. The server gets pre-authorization for the credit card. This is in plain text, but would be only on your LAN, which would typically be secure.
3. The server writes the details of the transaction to the SQL database. All sensitive information is encrypted.
4. Sales Host fetches the details of the transaction. The encrypted settlement string is retrieved from the database and decrypted.
5. Sales Host gets authorization for the credit card and processes the sale. This is in plain text, but would be only on your LAN, which would typically be secure.