Por otro lado, hay que tener en cuenta que muchas pasarelas de pago, permiten que el pago se haga en dos fases: en una primera fase, se bloquea el dinero en la cuenta del usuario, pero no se envía a tu cuenta.
En una segunda fase, se transfiere el dinero a tu cuenta, cuando ya sabes que puedes ofrecer lo que se ha comprado.
Esta solución es mucho más "limpia", ya que en caso de que haya problema, el dinero no ha salido nunca de la cuenta de la persona.
Además, puede tener también otras implicaciones: en los procesos de pago y posterior devolución puede haber comisiones, o que el pago / devolución tenga que tener reflejo contable, etc.
Este proceso se llama
Autorizacion / Captura.Normalmente, las dos cosas ocurren a la vez.Pero, el flujo sería que cuando se envía al usuario al proceso de pago, se pide una operación de autorizacion.Despues de que el usuario ha introducido los datos de tarjeta, y vuelve a tu web, compruebas que todavia tienes disponible lo que estas vendiendo.En ese caso, lo pones en estado "vendido", y entonces ejecutas la captura contra el sistema de pago (este proceso no requiere que el usuario haga nada, es un proceso servidor - servidor).
En caso de que no hubiera disponibles, anulas la autorizacion, y listo (el dinero no salió de la tarjeta del usuario).
Hay muchas opciones (al menos en paypal).Puedes hacer capturas parciales (por ejemplo, si se compran 3 objetos, y de 1 no hay stock), puedes hacer devoluciones sobre capturas parciales...