Como evitar reservas duplicadas com um evento de tempo limite

Uma tentativa de reserva poderá atingir o tempo limite se:

  • As configurações de tempo limite do servidor do afiliado forem muito baixas
  • O sistema de processamento de reservas estiver lento no nível do fornecedor
  • O gateway de pagamento estiver lento no nível do processamento de pagamento
  • Os servidores ficarem sobrecarregados devido a um aumento inesperado no tráfego

Onde pode ocorrer o tempo limite?

  • Um tempo limite poderá ocorrer no servidor do afiliado, se a resposta demorar mais do que as configurações do seu servidor. Recomendamos pelo menos 30 segundos para permitir todo o processamento de reservas e pagamentos. Embora raramente seja esperado que o processamento leve tanto tempo, confiamos na eficiência dos gateways de pagamento e do fornecedor.
  • Um tempo limite poderá ocorrer em nossos próprios servidores, se os gateways de pagamento e fornecedor forem executados além da nossa configuração de tempo limite de 60 segundos antes de recebermos um resultado. O processamento ainda poderá ser bem-sucedido, no entanto, se todos os sistemas atingirem o tempo limite antes de o resultado da reserva ser conhecido. Infelizmente, isso significa que talvez não tenhamos todas as informações de confirmação sem verificar o sistema.

Como verifico se uma reserva ainda resulta em um evento de tempo limite ou se o resultado da reserva é retornado vazio porque os sistemas atingiram o tempo limite em algum nível?

Examine o resumo de Solicitação de reserva para obter os detalhes sobre como usar o elemento affliateConfirmationId para localizar uma reserva na ocorrência de um evento de tempo limite em que uma confirmação ou itinerário bem-sucedido é desconhecido.

  • Você pode evitar reservas duplicadas incluindo lógica especial nas páginas de reserva para lidar com reservas que atingiram o tempo limite ou resultados de reserva vazios
  • Em seguida, comunique as informações apropriadas ao usuário e use a lógica correta para recuperar a reserva.

affiliateConfirmationId (string)

  • ID exclusiva de afiliado usada para o seu próprio rastreamento de afiliado ou somente para uso do afiliado
  • DEVE ser um valor exclusivo
  • A reserva falhará se o mesmo valor for enviado ALGUMA VEZ duplicadamente, incluindo o valor de uma reserva com falha
  • Esse valor também poderá ser usado para evitar reservas duplicadas, se o usuário clicar no botão de reserva mais de uma vez.
  • Se aprovada, confirmaremos que ainda não há uma reserva feita no sistema com o mesmo elemento affiliateConfirmationId. Além disso, os afiliados poderão recuperar itinerários do sistema usando essa ID.
  • Qualquer afiliado usando esse campo deve garantir que a ID é genuinamente exclusiva, assim como uma identificação GUID.
  • A ID deverá ser criada antes do usuário enviar o formulário de reserva final. Se o mesmo usuário clicar no botão Enviar novamente, o mesmo elemento affiliateConfirmationId será enviado e detectado como uma reserva duplicada.
  • Tenha muito cuidado ao enviar esse elemento, pois há muitos casos em que uma nova solicitação deve ser feita com um NOVO elemento affiliateConfirmationId, como uma reserva com falha ou irrecuperável.
  • Esse item é destinado a
    • seu próprio rastreamento
    • evitar reservas/cobranças duplicadas enviadas pelos usuários
    • verificar o sistema quanto a um itinerário, se a reserva alcançar o tempo limite ou retornar um resultado vazio devido a processos que alcançaram o tempo limite nos sistemas de terceiros

Etapas para determinar se uma reserva existe quando um tempo limite ocorre em uma solicitação de reserva ou o resultado é retornado vazio.

  1. A solicitação de reserva é enviada com um elemento exclusivo affiliateConfirmationId
  2. Um tempo limite ocorre ou nenhum resultado é retornado após um período estendido
  3. Após a ocorrência do tempo limite ou resultado de reserva vazio, faça uma solicitação de itinerário usando somente affiliateConfirmationId.

  4. Essa solicitação de itinerário retornará qualquer informação de itinerário desse elemento affiliateConfirmationId, se alguma foi criada.

  5. Também mostrará o STATUS desse itinerário.
    • CF - reserva confirmada
    • PS - pendente\: isso em geral é retornado, juntamente com handling=3, quando um agente deve finalizar a reserva. A EAN continuará tentando processar essas reservas e poderá resolvê-las com o status CF ou UC sem aviso prévio.
    • UC - não confirmado\: essa reserva não está mais disponível e não será confirmada.
    • DT - excluído\: a solicitação foi cancelada e o itinerário excluído de qualquer estatística. Isso em geral ocorre nas solicitações de reserva com erros irrecuperáveis.

 

  1. Se um resultado for retornado da solicitação de itinerário com qualquer outro status além de CF

    • Avise o usuário que houve um problema com a reserva e forneça o status da reserva.
    • Se handling = 3 for retornado, um agente entrará em contato com o usuário em 24 horas ou menos.
    • Você também pode oferecer ao cliente a opção de cancelar essa solicitação de reserva e iniciar uma nova.
    • Se a solicitação for cancelada, use as informações do itinerário obtidas para enviar a solicitação de cancelamento dessa tentativa de reserva.
    • Isso notificará os agentes de que não é necessário fazer o acompanhamento dessa tentativa de reserva.
  2. Se um resultado for retornado da solicitação de itinerário com CF

    • Mostre os resultados da reserva bem-sucedida nos resultados do itinerário ao usuário como se a reserva tivesse sido confirmada com sucesso sem qualquer tempo limite.
  3. Se nenhum resultado for retornado

    • Uma reserva não foi feita durante a solicitação de reserva com tempo limite.
    • Avise o usuário que houve um problema com o processamento da reserva e ofereça uma opção de acompanhamento de estabelecimentos para ele tentar novamente.
    • Não deixe de emitir um novo affiliateConfirmationId, pois esse valor deve ser exclusivo em toda solicitação de reserva.

Como evitar envios duplicados

Os usuários criarão reservas duplicadas sempre que clicarem em um botão Enviar irrestrito ou atualizarem a página de reserva para a mesma reserva.

Devido à natureza da Web, aos sistemas eletrônicos e a outros fatores incontroláveis, os tempos de envio e resposta transmitidos às vezes podem atrasar.

  • Se isso ocorrer, os usuários poderão ficar impacientes, clicando no seu método de envio de reserva mais de uma vez.
  • Nesse caso, uma nova reserva será criada para cada envio realizado.
  • Como as respostas de confirmação reais podem ser substituídas por novas respostas, o usuário talvez não veja ou detecte que a reserva foi enviada mais de uma vez e, na verdade, duplicada no seu site, até encontrar os e-mails de confirmação na caixa de entrada ou aparecer no estabelecimento.

Como as reservas duplicadas afetam o usuário?

  • Nas reservas pré-pagas, isso significa que o cartão de crédito do usuário é cobrado sempre que o envio duplicado é recebido e um novo registro de reserva criado.
  • No Hotel Collect/reservas do Hotel Collect, isso cria várias reservas para o mesmo usuário, no mesmo estabelecimento, nesse sistema.
    • O estabelecimento verá isso como várias reservas de quarto e responsabilizará o cliente pelas cobranças de cada quarto no check-in, pois cada quarto foi mantido pela garantia do cartão de crédito e não foi vendido a outros clientes.

Como as reservas duplicadas me afetam como afiliado?

  • Todo afiliado é responsável por criar seus próprios aplicativos, portanto, o afiliado também é responsável por seus clientes.
  • Se o manejo apropriado não for efeito, os litígios com clientes poderão criar cobranças desnecessárias que serão feiras diretamente ao afiliado.

Para evitar reservas duplicadas, inclua lógica especial nas suas páginas de reserva para lidar com vários envios e comunicar as informações apropriadas ao usuário.

  • Em muitos casos, a simples declaração de que o cartão do usuário será cobrado duas vezes se ele clicar mais de uma vez evitará a maioria dessas ocorrências.
  • Você também pode adicionar um código simples para desativar o botão Enviar da página de reserva após o primeiro clique, evitando cliques repetidos durante o carregamento.
  • Em outros casos de falha na Web, você precisará de um manejo especial para garantir que a reserva não seja enviada duas vezes quando apenas uma reserva era desejada.

O manejo especial também deve levar em conta que alguns erros de reserva podem ser resolvidos pelo reenvio da solicitação.

  • Dependendo da natureza da falha e do código de manejo de uma exceção que é retornado no momento da reserva, você pode determinar se uma reserva deve ser reenviada.
  • Nesses casos, a reserva não foi duplicada, mas deve haver uma nova tentativa de processamento bem-sucedido.

Examine o resumo de Solicitação de reserva para obter os detalhes sobre como usar o elemento <affliateConfirmationId>, que pode ajudar nosso sistema a detectar uma tentativa de reserva duplicada.

Por fim, use a solicitação de itinerário para verificar um itinerário existente ou o status de um itinerário existente.