jueves, 9 de abril de 2015

Bug en Aplicacion de Cinepolis para IOS

Alcance del Error

Versión de la App en IOS es la versión 3.2.0.

El error no esta del lado del cliente, el error esta del lado del servidor, en la forma que este procesa los peticiones.

El alcance de este error implica en un principio una Denegación de servicio para Cinepolis y probablemente un método para obtener boletos para el cine de forma Gratuita.

Historia.

El error consiste en un mal manejo del tiempo de espera en la App, momento después de procesar el pago (En el caso que describo el pago fue por PayPal).

Compraba 3 asientos para una función, asientos H4, H5 y H6 momento posterior al procesar el pago, la aplicación me arrojo un mensaje de "Error de tiempo de espera". Y por un breve segundo cuando se quito el mensaje de error logre ver el código para entrar a la sala del cine para los asientos mencionados, para posteriormente desaparecer.

Recibí una notificación de paypal diciendo que el dinero fue reembolsado.

Volví a realizar el proceso de compra y los asientos antes mencionados (H4, H5 y H6) ya no estaban disponibles, lo primero que pensé fue que alguien mas los compro, sin embargo también existía la posibilidad de que el servidor no manejara correctamente los reembolso, esto esto es: que realice el reembolso pero no libere el asiento para su posterior reventa.



Terminamos por elegir los asientos H1, H2 y H3 ya que toda la demás sala estaba llena a excepción de esos asientos y las filas A y B (Las mas cercanas a la Pantalla).

Antes de entrar a la sala, le dije a mi novia y a mi hermana que los asientos H4, H5 y H6 estarían desocupados durante toda la película, y asi sucedió, durante toda la película los asientos estuvieron desocupados, momento en el cual reporte:
Menciono que no recibí respuesta a estos tweets por parte de Cinepolis.

Un dia despues envie por email al administrador de sistemas de Cinepolis que la App tenia un error y contesto lo siguiente:

Luis,

Gracias por tu retroalimentación, lo vamos a revisar. 

Saludos!

Sin embargo no pregunto detalles adicionales de lo sucedido.

Si a mi me dicen que mi empresa esta tirando el dinero y/o esta dejando de recibir un ingreso por culpa de una aplicación, buscaría como solucionar lo sucedido de forma inmediata.

El Bug en la App

Como lo mencione el error se encuentra poco después de procesar el pago. Y es causado por un tiempo de espera prolongado.

Breve secuencia de los pasos en la App:


  • El usuario elije el Numero de Entradas que desea
  • El cliente movil pide al servidor de Cinepolis la lista de los asientos marcados como disponibles.
  • El servidor responde con la lista mencionada.
  • El cliente movil solicita al usuario que ingrese su forma de pago y los datos necesarios para el mismo.
  • Después el cliente recibe la confirmación de pago.
    • No estoy 100% seguro si la información de el pago la recibe el cliente movil directamente o el servidor de cinepolis y este asu vez se la manda al cliente. (Hay que revisar la comunicación para determinar este dato)
  • Una vez que el cliente móvil tiene la información del pago pide al servidor el código del Boleto para entrar a la sala.
    • Es aquí donde ocurre el error, al no recibir un pronta respuesta por parte del servidor, la App lanza el error del tiempo de espera agotado y empieza el proceso de Devolución de efectivo.
    • En este punto el servidor debería de habilitar nuevamente los asientos para su posterior reventa.


Es posible controlar el flujo del trafico entre el cliente movil y el servidor de Cinepolis mediante un servidor proxy, bloqueado aquellos paquetes que lleven la confirmación, esto nos lanzaría el error de tiempo de espera agotado en la App.

Lo que falta por comprobar es ver si sigue vigente el código del boleto que envío el servidor, lo lógico es suponer que el código es cancelado, sin embargo viendo que los asientos no fueron habilitados posteriormente esta en duda si el boleto es cancelado o no.

Publicar un comentario

Buscar en el Blog

Populares siempre