Here are a few thoughts:
- Xe was built around a 2 phase approach which are
a) get the authorisation
b) confirm the transaction
- There are BSFN hooks in Xe to integrate an on-line validation
- In Xe (the version I worked with), the calls are being made in the End Document business function and the errors from that call (for instance insufficient funds) were NOT TRAPPED!
- There is a transaction table where everything gets logged (amounts, card numbers and results)
But the hooks were INCOMPLETE. Here are some of the things that were missing:
1- Error handling in End document
2- The credit card processing system MUST ALWAYS return a receipt. I developped a custom report that would do just that and that would be called every time a transaction was attempted
3- There is no setup tables to store informations like the IP addresses of the credit card processing system, the different numbers and ID that had to be passed. I developped a setup table that had the following keys: BUSINESS UNIT / CURRENCY CODE
4- We wanted a single step transaction (this reduces the processing costs), so I had to "adapt" the hooks to perform everything in one step
etc...