#Server
- Keeps listening on dedicated ip, port
- Reads the request validates and logs it
- Fetches relevant info from the transaction request or (Queries csv file) against the account number and checks for account number
- If it finds the amount sufficient enough, approves the request and logs it
- Sends the response to the client.
#Client
- Sends transaction request.
- Waits for response
#Assumptions
- Request is coming from an already authorized client
- In this context we are Authorising against account number and transaction amount so we are using '0200' as MTI
- One sample request package is: '02005000000000000002191234567890123456789000000013990022' where account no is 1234567890123456789 and transaction amount = 139.90
- Our server has a database (hashmap) of account numbers and account balance pre-populated
#Future enhancements
- Make the server respond to previous incomplete request before responding to new one
- Let the server keep a log of all the transaction it has approved or rejected, keep a log file and append to it.
- Make it Available via REST api, where emulator will send HTTP request to Authengine and engine will respond as HTTP response (that would be really interesting and easy to deploy
- optimize
#Requirments
- python 2.7
#Installation
- Clone the directory
- cd and Run python authdriver.py
#Reference Used iso8583 open source library https://code.google.com/p/iso8583py/