aeburriel / uji-par

Gestión y venta de entradas del Teatro Municipal de Benicàssim "Francisco Tárrega"
https://www.benicassimcultura.es
0 stars 0 forks source link

Se cancelan ventas cobradas #16

Closed aeburriel closed 4 years ago

aeburriel commented 5 years ago

En algunos casos, cuando el usuario realiza operaciones de compra simultánea, se cobra una venta que ha sido cancelada y lógicamente las entradas no se entregan. Esto ocurre porque el código no permite hacer más de una compra concurrente por sesión.

Hay dos formas de reproducirlo: A. Iniciar dos compras de la misma sesión

  1. Iniciar una compra, rellenar los datos personales, enviarlos y abrir la pasarela de pago.
  2. Iniciar otra compra en una pestaña distinta para la misma sesión, llegando a los datos personales y cerrar esta compra.
  3. Volver a la pestaña de la pasarela de pagos y completar la operación.

B. Iniciar dos compras en distintas sesiones Como en el caso anterior pero con sesiones (o espectáctulos) distintos. La primera operación de compra es borrada de la base de datos sin dejar rastro alguno al iniciar la segunda.

aeburriel commented 5 years ago

Por diseño la aplicación espera que no se produzcan operaciones concurrentes de compra por sesión HTTP. Esto está completamente mal porque no se impiden compras concurrentes por sesión HTTP.

Cada vez que se modifica los datos de la compra en curso (butacas o datos del comprador) se borra (que no cancela!) la compra en la base de datos para sustituirla por una compra nueva, sin comprobar que la compra borrada pertenezca a la misma operación.

aeburriel commented 4 years ago

Resuelto en ecb2eb8e6a5245550e1e160838148ac5362039d0