Example: Retail Payment System
A retailer runs a geographically distributed network of shops. The shops currently accept bank cards via magnetic stripe readers (MSRs) provided by and directly connected to a bank, that the retailer has contracted. The retailer is unsatisfied with the current state, because they can’t change the bank, do not have control over the bank card transactions and because of the communication fees. The retailer decides do deploy a new solution that will concentrate authorization requests from all shops to a server machine in the retailer’s head quarters and pass them over a single communication line to the bank. The server system will communicate with the bank using a commonly accepted protocol for financial transactions. This new solution will eliminate all three shortcomings of the current system.
The server application will basically support three transactions: Sale, Reversal (triggered on signature check failure) and Refund. The transactions will be realized by three Thera operations consisting of steps described in the following table.
Step |
Description |
Card validation |
Is the card accepted by the shop? |
Route |
Choose destination based on card data |
Host |
Send request to destination, receive the response |
Translate RC |
Translate response codes |
Log |
Add a transaction log entry |
Totals |
Update reconciliation totals |
Thera architecture enables and even promotes that the steps listed will be general and reused in all three operations without any programming. The sequence of the steps for every operation will be configured using the Thera editor. As a part of the configuration, parameters will be supplied to every step instance within a given operation that will define aspects specific to that operation.
See examples\rps for a functioning example RPS application. Start with file "index.html" for instructions.