Foros del Web » Programando para Internet » PHP »

Control aforo en venta de entradas

Estas en el tema de Control aforo en venta de entradas en el foro de PHP en Foros del Web. Buenos dias, tengo que desarrollar una aplicacion de venta de entradas, tengo mas o menos la idea pero hay un problema a la hora de ...
  #1 (permalink)  
Antiguo 06/05/2016, 02:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 79
Antigüedad: 16 años, 4 meses
Puntos: 0
Control aforo en venta de entradas

Buenos dias,

tengo que desarrollar una aplicacion de venta de entradas, tengo mas o menos la idea pero hay un problema a la hora de asegurar que no haya venta sobre el aforo determinado.

Tengo claro que antes de ir a la pasarela de pago, la aplicacion compruebe a ver si quedan entradas. El problema le tengo en cuando guardar en base de datos la venta y como borrar el registro en caso de que el pago no se haga.

Me podeis echar una mano¿
  #2 (permalink)  
Antiguo 06/05/2016, 02:51
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Control aforo en venta de entradas

Hola akrogonac,

La pasarela de pago te debe permitir enviar para luego retornarte algún tipo de identificador de la venta, teniendo eso, el resto es fácil, compruebas el identificador y el estado de la transacción y en función de los resultados, grabas en la base de datos o borras.

Espero que te sirva.
  #3 (permalink)  
Antiguo 06/05/2016, 02:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 79
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Control aforo en venta de entradas

Gracias por responder @rbczgz

Eso lo tengo mas o menos claro tambien, no lo he implementado nunca, pero hay documentacion suficiente. Me preocupa mas la gente que entre hasta la pasarela de pago y despues no realice el pago.

Si previamente he registrado en base de datos que esas entradas quedan reservadas... Como puedo gestionar esta incidencia?
  #4 (permalink)  
Antiguo 06/05/2016, 03:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Control aforo en venta de entradas

Hola akrogonac,

Tienes dos opciones, que entren y cancelen la operación, con lo cual la plataforma te lo debe notificar, o la otra es que entren y directamente cierren el navegador, en este caso, yo lo que haría es marcar un tiempo determinado (no demasiado, claro) y si en ese tiempo no has obtenido respuesta de la plataforma, liberas las entradas.

Yo la lógica la veo así, espero que te sirva...
  #5 (permalink)  
Antiguo 06/05/2016, 03:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 79
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Control aforo en venta de entradas

Gracias de nuevo @rbczgz

Lo mas interesante seria que fuese automatico. Lo que no se es como hacer que esas entradas se liberen automaticamente cuando hayan pasado x minutos. Ademas existiria el problema de que el cliente este en paypal y el tiempo x se haya excedido. No se si las pasarelas de pago tienen tambien un tiempo determinado para las transacciones y si este se puede modificar.
  #6 (permalink)  
Antiguo 06/05/2016, 03:56
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Control aforo en venta de entradas

En lugar de tener las entradas como "En venta" o "vendida", yo añadiría al menos un estado más que sea "Reservada". De esta manera cuando un usuario pase al punto de pago, reservar la entrada y si en "x minutos" no se ha confirmado el pago, un servicio de fondo la ponga otra vez "En venta". Lo mismo si detectas que el pago se ha cancelado la podrías cambiar de estado directamente sin esperar el "timeout".
__________________
Aviso: No se resuelven dudas por MP!
  #7 (permalink)  
Antiguo 06/05/2016, 04:04
 
Fecha de Ingreso: diciembre-2007
Mensajes: 79
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Control aforo en venta de entradas

Gracias @Malenko por tu ayuda,

supongamos que hemos asignado 10 min como tiempo maximo de pago. El cliente llega a la pasarela de pago y en base de datos marcamos como reservada.

Pasan los 10 min y el cliente aun no ha pagado, el servicio en segundo plano, cambia la entrada a en venta. Tras esto el cliente paga. Aqui volvemos a tener conflicto.

A no ser que a las pasarelas de pago se les pueda asignar el mismo tiempo.
  #8 (permalink)  
Antiguo 06/05/2016, 04:14
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Control aforo en venta de entradas

podrías desactivar el autocommit de esa manera tienes el control de la inserción en la base de datos y en caso de cierre del navegador o x reversas todo y queda como si nada

Código PHP:
Ver original
  1. $db->autocommit(false);
  2.  
  3. $a = $db->query("INSERT INTO tabla (campo) VALUE (valor)");
  4.  
  5. if($a !== false){
  6. $db->commit($a);
  7. }else{
  8. $db->rollback();
  9. }

Esto es util, imagina que tienes varias operaciones y que por x op y motivo falla el servidor o lo que sea y de las supuestas 4 operaciones logras realizar 2, fallaria la integridad de los dastos, esto funciona en tablas innoDB, igual las recomendaciones anteriores tambien son validas, utilizar un cronjob tambien te podria servir
__________________
[email protected]
HITCEL
  #9 (permalink)  
Antiguo 06/05/2016, 06:54
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Control aforo en venta de entradas

Cita:
Iniciado por akrogonac Ver Mensaje
Gracias @Malenko por tu ayuda,

supongamos que hemos asignado 10 min como tiempo maximo de pago. El cliente llega a la pasarela de pago y en base de datos marcamos como reservada.

Pasan los 10 min y el cliente aun no ha pagado, el servicio en segundo plano, cambia la entrada a en venta. Tras esto el cliente paga. Aqui volvemos a tener conflicto.

A no ser que a las pasarelas de pago se les pueda asignar el mismo tiempo.
Con lo que descubres es que el problema no es que el usuario reserve , y no pague. El problema es controlar recursos limitados.

Para resolverlo, la disponibilidad de lo que se haya comprado hay que comprobarla también al regreso del pago.En caso de que el recurso ya no esté disponible, actuar en consecuencia.

Una opción es devolver inmediatamente el pago, e informar al usuario, ponerlo en una lista de espera por si hay cancelaciones, etc.
Otras veces, puedes ofrecer alternativas.Si, por ejemplo, el usuario pudiera elegir asiento (en caso de que el sistema se basara en "asientos"), podría seleccionar uno alternativo.
  #10 (permalink)  
Antiguo 06/05/2016, 09:31
 
Fecha de Ingreso: diciembre-2007
Mensajes: 79
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Control aforo en venta de entradas

creo que esa es mi unica opcion @dashtrash. A pesar de que me fastidia un poco la posibilidad de molestar a un cliente que hace el pago para decirle despues que no hay entradas. Aun asi, son casos muy raros pero quiero tenerlos contemplados.

Me podeis confirmar que todas las pasarelas de pago te envian un POST de confirmacion con los datos del pedido una vez hecho e pago? Se que paypal lo hace, pero redsys por ejemplo?

Alguien sabe algo de esto?
  #11 (permalink)  
Antiguo 06/05/2016, 13:23
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Control aforo en venta de entradas

Hola akrogonac,

Hasta donde yo sé, sí envían confirmación si la configuras para ello, porque la mayoría tienen varias opciones de "configuración".
  #12 (permalink)  
Antiguo 06/05/2016, 13:47
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Control aforo en venta de entradas

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...

Última edición por dashtrash; 06/05/2016 a las 13:53

Etiquetas: control, entradas, registro, venta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:36.