I'm developing a type of ticket purchase system using authorize.net (SIM). The system needs to hold onto tickets until the purchase is complete. That way if someone else comes through, they don't complete the payment transaction quicker and grab those tickets. (There's a limit to the number of tickets that can be sold per event.)
My logic is...
1) Someone chooses x number of tickets for an event.
2) Write information into database putting x number of tickets on hold.
3) Person completes authorize.net transaction
4) Authorize.net sends variables back to my page to move tickets from 'hold' to purchased
The problem I'm trying to work out is: if someone gets to step #3 and decides not to complete the credit card transaction how does my application know to release those tickets?
If anyone can help me with this dilemma, I'd appreciate it.