Recovery
The general principles governing recovery for Pay@Table systems are as follows:
For systems supporting Pay@Table, Simplify acts as a TCP/IP client to the POS. Simplify will be the one connecting to the POS.
For every message that Simplify sends to the POS which requires a response, a timer will be started by Simplify. These timers can be configured independently to define a different wait time for the response to each message type. If a response is not received in time, the current socket will be closed and a new socket connection will be opened by Simplify.
A disconnect or socket error while waiting for a response will cause Simplify to open a new socket to the POS.
Recovery points are defined to be resent when Simplify times out waiting for a response. (See table below.)
When a timer expires waiting for a response, and reconnection to the recovery point is not successful, Simplify will go to the logged-off (idle) state.
The Login Response will contain a PATT Session ID (Gateway API field 5219) which is unique for every login. This Session ID will be attached to all subsequent requests and responses in the session, and can be used to recover the correct session.
Simplify Recovery Points and Actions
State | Message | Expected Response | Recover State on Timeout | Action on Timeout/Dropped Socket |
---|---|---|---|---|
Idle | Idle | Idle | Idle | |
Login/Connect | Login Request | Login Response | Login/Connect | Close and create new socket |
Get Check Information | Get Check Information Request | Get Check Information Response | Get Check Information | Close and create new socket |
Make Payment Request | Make Payment Request | financial request | Get Check Information | Close and create new socket |
Financial Request | Same process as current | Same process as current | Get Check Information | Close and create new socket |
Receipt Printing | Print Receipt Request | Print Receipt Response | Receipt printing | Wait for new socket |
Logout/Disconnect | Logout/Disconnect Request | Logout/Disconnect Response, User logged out, POS disconnects | Idle | Close socket |
POS Recovery
If a timeout or other communication error occurs while waiting for a financial response, the POS can send an Inquiry Request (22) using current rules (as defined under Inquiry Message).