Cómo evitar reservas duplicadas en caso de un tiempo de espera agotado

Se puede agotar el tiempo de espera de un intento de reserva en las situaciones siguientes:

  • En el servidor del afiliado se ha configurado un tiempo de espera demasiado corto.
  • El sistema de procesamiento de reservas es lento en el nivel de proveedor.
  • La puerta de enlace de pagos es lenta en el nivel de procesamiento de pagos.
  • Los servidores se sobrecargan por un pico inesperado en el tráfico.

¿Dónde sucede el agotamiento del tiempo de espera?

  • El agotamiento del tiempo de espera puede suceder en el servidor del afiliado si la respuesta tarda más que el tiempo definido en tu configuración de servidor. Se recomienda configurar al menos 30 segundos para que dé tiempo suficiente a que se procesen todas las reservas y pagos. Aunque el procesamiento no suele tardar tanto tiempo, dependemos de la eficacia de las puertas de enlace de pagos y de proveedores.
  • Un agotamiento del tiempo de espera puede suceder en nuestros propios servidores si la ejecución de las puertas de enlaces de pagos o proveedores dura más de los 60 segundos establecidos como tiempo de espera antes de que recibamos un resultado. No obstante, el procesamiento puede ser correcto, aunque todos los sistemas agotaran el tiempo de espera antes de que se conociera el resultado de la reserva. Desafortunadamente, esto implica que es posible que no tengamos toda la información de confirmación sin comprobar el sistema.

¿Cómo puedo comprobar que una reserva ha concluido correctamente en caso de que se agote el tiempo de espera? ¿Cómo puedo comprobar si el resultado de la reserva se ha devuelto vacío porque se ha agotado el tiempo de espera en los sistemas en cualquier nivel?

Consulta Solicitud de reserva para conocer los detalles sobre el uso de affliateConfirmationId (ID de confirmación de afiliación), que se puede utilizar para buscar una reserva en caso de que se haya agotado el tiempo de espera y no se conozca una confirmación o itinerario correctos.

  • Puedes evitar la duplicación de reservas mediante la inclusión de una lógica especial en las páginas de reserva que sea capaz de manejar las reservas en casos de tiempo de espera agotado o resultados de reserva vacíos.
  • Después, comunica la información adecuada al usuario y utiliza la lógica correcta para recuperar la reserva.

affiliateConfirmationId (ID de confirmación de afiliación) (cadena)

  • ID exclusivo de afiliado que se utiliza para tu propio seguimiento de afiliación o solo para uso personal del afiliado.
  • DEBE ser un valor exclusivo.
  • Se producirá un error en la reserva si se envía el mismo valor dos veces, incluido un valor de una reserva fallida.
  • Este valor también se puede utilizar para evitar la duplicación de reservas si el usuario hace clic en el botón de reservas más de una vez.
  • Si se transmite, validaremos que aún no existe ninguna reserva en el sistema realizada con el mismo affiliateConfirmationId (ID de confirmación de afiliación). Además, los afiliados pueden recuperar los itinerarios del sistema mediante este ID.
  • Todos los afiliados que utilicen este campo deben asegurarse de que el ID realmente sea exclusivo, como un ID GUID.
  • El ID debe crearse antes de que el usuario envíe el formulario de reserva final. Si el mismo usuario vuelve a pulsar el botón Enviar, se enviará el mismo affiliateConfirmationId (ID de confirmación de afiliación) y se detectará como una reserva duplicada.
  • Ten sumo cuidado al enviar este elemento, ya que existen muchos casos en los que se debe realizar una solicitud totalmente nueva y con un NUEVO affiliateConfirmationId (ID de confirmación de afiliación); por ejemplo, en una reserva fallida o irrecuperable.
  • Este elemento se usa para
    • tu propio seguimiento;
    • evitar reservas y cargos duplicados enviados por los usuarios;
    • comprobar el sistema para ver si hay un itinerario aunque se haya agotado el tiempo de espera de la reserva o esta haya devuelto un resultado vacío por procesos en sistemas de terceros cuyo tiempo de espera se haya agotado.

Pasos para determinar si existe una reserva cuando se agota el tiempo de espera en una solicitud de reserva o el resultado se devuelve vacío.

  1. La solicitud de reserva se envía con un affiliateConfirmationId (ID de confirmación de afiliación) exclusivo.
  2. Se agota el tiempo de espera o no se devuelve ningún resultado tras un tiempo prolongado.
  3. Una vez que se ha agotado el tiempo de espera o se ha obtenido un resultado de reserva vacío, realiza una solicitud de itinerario usando solo el affiliateConfirmationId (ID de confirmación de afiliación).

  4. Esta solicitud devolverá cualquier información de itinerario correspondiente a ese affiliateConfirmationId (ID de confirmación de afiliación), en caso de que se haya creado.

  5. También mostrará el ESTADO de dicho itinerario.

    • CF: reserva confirmada
    • PS: pendiente: normalmente es el estado que se obtiene si se devuelve handling=3, que indica que un agente debe finalizar la reserva. EAN continuará intentando procesar estas reservas y puede efectuar la resolución a CF o UC sin avisar.
    • UC: sin confirmar: esta reserva ya no está disponible y no se confirmará.
    • DT: borrada: la solicitud se ha cancelado y el itinerario se ha borrado de todas las estadísticas. Suele ser el estado habitual en las solicitudes de reserva en las que se obtienen errores irrecuperables. ^
  6. Si se devuelve un resultado de la solicitud de itinerario con cualquier otro estado distinto de CF, haz lo siguiente:

    • Avisa al usuario de que ha habido un problema con su reserva e indícale el estado de esta.
    • Si se devuelve handling = 3, un agente se pondrá en contacto con el usuario en un máximo de 24 horas.
    • También puedes ofrecer al cliente la opción de cancelar esa solicitud de reserva y comenzar una nueva.
    • Si se cancela la solicitud, utiliza la información del itinerario obtenida para enviar la solicitud de cancelación de ese intento de reserva.
    • Esto notificará a los agentes de que no es necesario realizar un seguimiento de ese intento de reserva.
  7. {: .red} Si se devuelve un resultado de la solicitud de itinerario con el estado CF:

    • Muestra al usuario los resultados de la reserva correcta de los resultados del itinerario, de igual forma que harías si la reserva se hubiera confirmado correctamente sin que se agotara ningún tiempo de espera.
  8. Si no se devuelven resultados:

    • No se ha realizado ninguna reserva durante la solicitud de reserva cuyo tiempo de espera se ha agotado.
    • Avisa al usuario de que ha habido un problema con el procesamiento de la reserva y ofrécele las distintas propiedades que puede utilizar para intentarlo de nuevo.
    • Asegúrate de emitir un nuevo affiliateConfirmationId (ID de confirmación de afiliación), ya que este debe ser un valor exclusivo de cada solicitud de reserva.

Cómo evitar envíos duplicados

Los usuarios crearán reservas duplicadas cada vez que pulsan un botón Enviar sin restricciones o actualizan la página de reservas para la misma reserva.

Debido a la naturaleza de Internet, los sistemas electrónicos y otros factores incontrolables, la transmisión de los envíos y los tiempos de respuesta pueden retrasarse.

  • Si esto sucede, los usuarios se pueden impacientar y hacer clic en tu método de envío de reservas varias veces.
  • En estos casos, se crea una nueva reserva por cada envío que se realiza.
  • Como las respuestas de confirmación reales pueden quedar sobrescritas con respuestas más recientes, es posible que el usuario no vea ni detecte que su reserva se ha enviado varias veces y se ha duplicado en el sitio hasta que consulte los mensajes de correo electrónico de confirmación o se presente en la propiedad.

¿Cómo afectan al usuario las reservas duplicadas?

  • En las reservas prepagadas, se realiza un cargo en su tarjeta de crédito cada vez que se recibe un envío duplicado y se crea un nuevo registro de reserva.
  • En las reservas de Hotel Collect/Hotel Collect, se crean varias reservas para el mismo usuario en el sistema para la misma propiedad.
    • La propiedad las verá como reservas de varias habitaciones y el huésped deberá hacerse cargo del coste de cada habitación en el registro de entrada, ya que se han reservado todas las habitaciones solicitadas con la garantía de su tarjeta de crédito y no se han podido vender a otros clientes.

Como afiliado, ¿cómo me afectan las reservas duplicadas?

  • Todos los afiliados son responsables de crear sus propias aplicaciones y, por tanto, también lo son de sus clientes.
  • Si la situación no se trata correctamente, los conflictos con los clientes pueden crear cargos innecesarios que se cobrarán directamente al afiliado.

Para evitar reservas duplicadas, incluye una lógica especial en tus páginas de reserva con el fin de manejar las situaciones en las que se realizan varios envíos y comunicar la información adecuada al usuario.

  • En la mayoría de los casos, basta con indicar al usuario que se cargará el importe dos veces en su tarjeta si hace clic varias veces.
  • También puedes añadir código sencillo para deshabilitar el botón Enviar de tu página de reservas después de un clic, lo que evitará que el usuario vuelva a hacer clic durante el tiempo de carga.
  • En otros casos de error del sitio web, tendrás que adoptar medidas especiales para asegurarte de que no se envía la reserva dos veces cuando se pretende hacer solo una.

Las medidas de manejo especiales también deberían tener en cuenta que algunos errores de reserva se pueden solucionar mediante un nuevo envío de la solicitud.

  • Según la naturaleza del error y el código de manejo (handling) de una excepción que se devuelva durante la reserva, puedes determinar si se debe enviar de nuevo una reserva.
  • En estos casos, no se duplica la reserva, sino que se intenta de nuevo para conseguir un procesamiento correcto.

Consulta Solicitud de reserva para conocer los detalles sobre el uso de <affliateConfirmationId>, que puede ayudar a nuestro sistema a detectar un intento de reserva duplicado.

Por último, utiliza la solicitud del itinerario para comprobar si existe un itinerario o, en caso afirmativo, cuál es el estado de este.