
Originally Posted by
duncanad
Clyde,
To answer both yourself and the previous post from Blush Fashions let me first explain how the WorldPay callback works and interacts with ZenCart.
When a customer completes the checkout process they are passed to the WorldPay servers to complete the financial transaction. Once the customer has entered their credit card details WorldPay do a security check with the issuing bank and, if everything is OK they payment is deducted from the customers card account. At this point the callback kicks in and WorldPay tries to run the callback script within the ZenCart WorldPay module.
If this runs OK then basically the order is processed within Zencart. All the items in the customer cart are added to a new order, the customer cart is emptied and the new order appears within the ZenCart Admin. The customer sees the Zenncart 'Checkout Success' screen. Both WorldPay and ZenCart send emails to the customer and merchant confirming the transaction.
If the callback fails for any reason the customer is directed to a WorldPay 'Success' page (which can be customised) and the customer and merchant receive an email from WorldPay. However, since the callback has failed, ie the callback script has not run, the order is not created within Zencart, the customer cart will still contain the items the customer has tried to order and no emails will be sent by Zencart.
This is what appears to be happening at both the Blush Fashions and Mystic Mountain Naturals website.
Why is it happening? There are two reasons why this may be happening.
The first is that the callback url is not available (or doesn't respond quickly enough) when WorldPay initiates the callback. I have tried accessing the Mystic Mountain Naturals website several times this afternoon and it responds very very slowly. I suspect this may be the problem here.
The second is that some hosts appear to use some form of re-direct to point to domains hosted on their servers. I'm no expert on the various configuration options of webservers but usually when someone reports a callback failure they also report a 're-direct' error being reported by WorldPay. For security reasons WorldPay do not allow any form of re-direct within the callback script. If this is the case you will need to contact your host and ask them to remove any re-directs associated with your domain.
Seems like a bit of a cop out but I'm afraid what the above boils down to is that it is a hosting problem. Either the server is too slow or the configuration is not compatible with WorldPay. What I will say is that I have several customers who have been using Zencart and the WorldPay module, hosted on my server, for several years now (over 3000 transactions) and I have only experienced one callback failure in that time. I can't be sure but I think on that occassion the customer took so long processing the transaction (they may have been distracted) with WorldPay that their Zencart login session had timed out and was no longer valid.
I hope this helps. Please post back here if/when you get this issue resolved.
Regards,
Alan
Bookmarks