What we use is PayPal's IPN -- Instant Payment Notification, and sometimes, it isn't that instant. We've seen it take up to 15 minutes before, but most of the time it is, in fact, instantaneous.
Basically, the way Vend works is like this:
- When someone pays with PayPal, the order is actually still sitting right there in their cart -- unbeknownst to them.
- Then they go to PayPal, to pay for it, and then -- theoretically -- using IPN, PayPal tells your server (and Vend) that order has been placed, and to change the Vend cart into a Vend order.
- At this point that is when you get notified by Vend about the order, and the invoices show up and all that jazz.
So from the time they leave Vend, to the time PayPal's IPN pings your server -- the order is in limbo. We do it this way because of the apprehensive buyer syndrome, we totally just made that term up. But it's when you've got $800 of "stuff" in your cart, and "yeah, it was expensive, but what the heck, they're my grandchildren!" gets absolved in the mind of your buyer, and they click "purchase" -- and then ... wait for it ... get sent to PayPal -- to make that decision all over again. Different screen, and another chance to change their minds.
So we don't make the order until they pay, and if they don't pay, they can always go right back to Vend, and their order will be right there waiting for them. This time they'll know the drill: make the decision twice, or time to trim.
This is where sometimes PayPal can really mess things up, because some people are very antsy indeed, they put in the order, and then they log back into Vend and the order is still there! so they submit again. But what they don't know is that PayPal's IPN is just running behind, and has yet to contact the server. In which case it will cause pending payment.
The issue comes up very rarely -- in fact, 99% of the time it's people who buy Vend for the first time, and test thier own order, and know the email should be coming in, but it's not, so they re-submit and things get lost in cyberspace.
If it ever does happen, it's really no one's fault (except for maybe PayPal not being so instant) -- but it really needs to be the perfect storm.