Home » Item #960
I seem to be having problems with the Protx callback. Sometimes I get error reports from CactuShop indicating a callback error. Sometimes customers report being forwarded to a page stating that there was an error with the transaction, even if the order was successful according to my CactuShop back end. Sometimes I receive an error message from CactuShop's callback system that says the customer aborted the order. What can I do about these errors?
Most payment gateways have a mechanism for a callback. This means that after the card payment is made, the gateway can communicate this to CactuShop so that it can send confirmation emails and tag the order as completed.
Typically this callback is achieved by the gateway calling a specified URL on your CactuShop, the callback.asp script with a parameter passed to it to tell it which gateway this callback is for (since you can run multiple payment systems on a single site). Unfortunately, Protx's callback is not done like this. Instead, the customer's own browser is redirected to the callback script to activate it.
This is inherently less robust than if the gateway made the call itself. For a start, it's possible that the customer might close their browser immediately after payment before the client side redirection can occur, hence paying without triggering the callback (though you should still get confirmation emails from Protx). Furthermore, because the callback URL is in the user's browser, they can call it again by refreshing the page.
This is the most common cause of the reported Protx problems we see; orders are called back successfully, but then a second attempt is inadvertently made to recall the callback page, passing the same parameters to it. Because CactuShop has already processed the order and tagged it as complete, it will not process it again (and it won't resend confirmation mails again). Instead, it will regard the second callback as an error and display this to the customer in whose browser the page is running and (if the senderroremail config setting is active) send an email notification of a callback error to the store owner.
If you use Protx, you will have to bear this in mind. Unlike most other gateways, it relies on the customer to make the callback rather than doing it itself in the background. Because the URL is in the customer's browser, there is no way to prevent them recalling it. All CactuShop can do is trap the error. The error does not damage your store or the data on it - the error is notifying you and the customer that CactuShop received a call that it considered erroneous.
In the case of a customer aborting an order at Protx, this will pass the 'abort' message through to the callback. Because the callback only runs successfully if it gets an 'ok' message from Protx, it will treat the abort just like a failed transaction and notify you. An error email will be sent from the store to the store owner if the senderroremail config setting is checked.
In summary, the error notification feature of CactuShop is designed to provide you with as much information as possible about all failures detected such as script errors, setup problems or failed transactions. This information is useful for debugging problems. If the only errors you get through are notifications of Protx order failures, then your store is working well and you can consider unchecking the senderroremail.