This is an issue that's been happening off and on since our new (totally custom) site launched in 2012, and we cannot get to the bottom of it, since we (and our web developers) simply cannot reproduce it for testing.
Here's the situation:
A fun variation on this theme is that sometimes there's a hold on the patron's credit card for two orders, but only the second order comes through and the first hold eventually disappears and they are only charged once.
So, I come to you out of utter exasperation: HOW is that first order going through? Why isn't it generating an order confirmation? Has anyone else ever experienced this?
Any help you can give would be very, very appreciated. Thank you!
Out of curiosity, Has this issue been addressed? Has anyone found a fix for this?
We are experiencing this randomly and it is beginning to cause issues.
Hi all,We had a similar issue a while ago, again took ages to figure out as I couldn't replicate it in any testing or figure it out from the logs. The problem as you've seen is that the order times out so the customer pays for something that no longer exists. To solve this just before the customer goes to payment I used the UpdateOrderDetails method in SOAP to add 45 minutes to the ticket hold time.
This prevents the order expiring during payment, depending on your configuration settings this method either overrides the default or at the very least resets it to what is set in your web config file, either way it has stopped the problem here.
Here is the code I've written in PHP that is triggered when the customer hits the PAY NOW button.
function updateOrder($minutes=45) {
$p = array( 'sSessionKey'=>$this->sessionKey, 'sSolicitor'=>$this->organisationAPI 'iCategory'=>-1, 'iChannel'=>5, 'sHoldUntilDateTime'=>date('Y-m-d H:i:s', strtotime('+'.$minutes.' hour')) );
$results = $this->call('UpdateOrderDetails', $p); return $results;}