I would say that the first part of your strategy is correct - when you go to the payment page, mark all products as โon holdโ
When the user completes the payment, you will receive a return transfer from Paypal, which will notify you whether the authorization was successful or not (and perhaps also allows you to check the result of CSC / CVV2), and at this point you have the opportunity to either accept the payment or reject his.
When you receive a postback, you should also check to see if all items are on hold. If they were calculated, you can reject the payment and display the message "sorry - timed out" or something similar.
This method also allows you to develop an ideal timeout period if you keep track of how often clients start the timeout, so you can extend the timeout (for example, from 5 to 10 minutes if too much time is turned off, or shorten it if none of which is not disabled.
Paulg
source share