NÃO confie na correspondência do texto das mensagens de exceção para avaliar um curso de ação.

  1. Avalie a natureza da exceção (manejo, categoria, mensagem)
  2. Avalie se a exceção não ocorreu por causa de erros em sua solicitação
    • Revise solicitações de exemplo bem formuladas, para verificar se está enviando todos os itens e valores corretamente.
    • A Planilha de depuração o ajudará a comparar sua solicitação com uma solicitação bem formulada. Use o Sandbox XML para fazer exatamente a mesma solicitação, copiar a solicitação XML e comparar cada item lado a lado com a sua.
  3. Determine um curso de ação com base no manejo e na categoria retornada, bem como nas ações anteriores do cliente.
    • O cliente precisa selecionar outro estabelecimento?
    • O cliente precisar corrigir os dados de entrada?
    • Informe ao cliente que um agente entrará em contato para acompanhar o pedido de reserva, quando handling=AGENT_ATTENTION for retornado

Já que as mensagens de erro do fornecedor mudam sem notificação e não são publicadas por esses sistemas, uma lista completa das mensagens é desconhecida.

  • Registre e colete as mensagens de erro enquanto elas ocorrem, para que você possa criar o seu próprio banco de dados de erros.
  • Coletando os elementos de manejo, categoria e mensagem no seu próprio sistema, você poderá manejar todos os erros à medida que eles ocorrem, incluindo quaisquer mensagens novas que sejam retornadas dos recursos do fornecedor.

Elemento de resposta comum

Elemento Tipo Descrição
customerSessionId (string) Esse valor é retornado para rastrear a atividade da sessão do usuário, a fim de compilar estatísticas, comportamento do usuário e tráfego. Inclua esse valor em cada solicitação e avance para o registro dessa sessão individual do usuário.
EanWsError (objeto EanWsError) Nó de exceção da raiz

EanWsError

Elemento Tipo Descrição
itineraryId (long) A ID associada a um itinerário da EAN. Esse valor é necessário em todas as correspondências com os agentes do serviço de atendimento ao cliente nas reservas.  Uma ID de itinerário é retornada somente nas solicitações de reserva. Os erros de validação dos dados nas solicitações de reserva não retornam um elemento itineraryID.  Se 1 for retornado, sempre o retorne para o cliente como número de referência.  Se não, o erro não foi longe o suficiente para gerar uma itineraryID de referência.
  • Se -1 for retornado, um registro de itinerário não foi criado e não existe nenhum registro da solicitação.
  • Se uma ID de itinerário for retornada, deve ser usado em toda a correspondência com o atendimento ao cliente, em qualquer reserva.
  • Um itinerário será retornado em uma solicitação falha de reserva se a ocorrência puder ser registrada no sistema.
  • Em alguns casos, como na falha de validação do cartão de crédito, a ID de itinerário pode ser incluída em qualquer solicitação de acompanhamento para corrigir a reserva com falha, o que substitui o itinerário com falha por outro bem-sucedido.  Isso impede uma cadeia de itinerários com falha para o mesmo cliente.  Tome cuidado ao enviar o elemento itineraryID em uma solicitação de reserva para que as reservas bem-sucedidas não sejam substituídas acidentalmente.
  • Se handling=AGENT_ATTENTION também for retornado, o erro é sinalizado para o acompanhamento por um agente. Do contrário, handling= UNKNOWN ou UNRECOVERABLE indica que uma nova solicitação de reserva deve ser reenviada.
  • A categoria retornada determina se a mesma reserva pode ser tentada novamente (falha da chave de cotação) OU se um novo estabelecimento deve ser selecionado (EX: esgotado).
  • Se a mesma solicitação for reenviada, atualize os dados do quarto e mostre as tarifas alteradas para o usuário selecionar novamente. Em seguida, envie os dados atualizados do quarto na reserva reenviada.
exceptionConditionId (int) para referência interna somente
presentationMessage (string) mensagem de erro de apresentação retornada
verboseMessage (string) mensagem de erro detalhada mais específica
manejo (objeto errorHandling) valor que indica a severidade da exceção e como pode ser manejada
categoria (objeto errorCategory) valor que indica a natureza da exceção ou o motivo pelo qual ela ocorreu
ErrorAttributes
(objeto de Atributos de erro) dados adicionais do erro. Esse elemento normalmente retorna os dados para o processamento do cartão de crédito com código seguro ou a correção de erros de múltiplos locais.
ServerInfo (objeto ServerInfo)

(minRev 7 e superior)

Atributos:

  • serverTime = tempo formatado legível atual
  • timestamp = a hora atual em segundos
    • Ao receber um erro de autenticação usando a autenticação da assinatura, reenvie a solicitação usando esse valor para criar o parâmetro sig. Devido às diferenças de fuso horário, alguns afiliados não correspondem ao tempo precisamente ao gerar um valor sig. Use esse valor para sincronizar o tempo com o nosso servidor ao criar um valor sig e autenticar com esse método.
  • instância = uma instância de servidor interno
Exemplo: <ServerInfo serverTime="19:11:13.082-0500" timestamp="1311725473" instance="48" />

errorHandling

Elemento Descrição
UNKNOWN Não foi possível fazer uma reserva bem-sucedida e o motivo da falha é desconhecido.
RECOVERABLE Isso geralmente indica um erro do usuário, como entradas incorretas não’ aprovadas para validação. Para recuperar, basta que o usuário corrija o erro na entrada do campo indicado na mensagem. Isso também pode ser um erro recuperável reenviando a reserva com os valores atualizados.
UNRECOVERABLE O erro que ocorreu não pode ser corrigido pelo usuário ou um agente do serviço de atendimento ao cliente. Para fazer essa reserva, o usuário precisa voltar e reiniciar ou atualizar a pesquisa. Esse erro ocorre em problemas de solicitação inválida, dados impossíveis de utilizar ou problemas no fornecedor.
AGENT_ATTENTION

Pudemos registrar o itinerário, entretanto, devido à natureza do erro ou à tentativa de reserva:

  • um agente deve acompanhar para concluir a reserva manualmente
  • verifique se uma reserva foi sinalizada por fraude
  • responda ao usuário que um erro ocorreu e pergunte se ele gostaria de dar prosseguimento à solicitação de reserva. Em muitos casos, o usuário pode ser encaminhado ao site para tentar reservar on-line novamente.

errorCategory

Elemento Descrição
UNKNOWN falha de processo desconhecida
EXCEPTION erro não identificado
CREDITCARD erro de processamento de cartão de crédito
DATA_VALIDATION erro de entrada do usuário
AUTHENTICATION acesso não autorizado, impossível autenticar permissões de acesso
UNABLE_TO_PROCESS_REQUEST impossível processar a solicitação
INVALID_PROPERTY_ID ID de hotel inválida ou ID de hotel inativa
RESULT_NULL sem resultados
PROCESS_FAIL falha do processo
SOLD_OUT esgotado
RESTRICTED_CHECKIN as datas ou o número de noites não atendem às regras de check-in restrito
ONEROOM  
SUPPLIER_COMMUNICATION falha de comunicação com o fornecedor, problema de conectividade do fornecedor
DATA_PARSE_RESULT problema na análise dos dados
CORPORATE_RATE ID corporativa obrigatória para a tarifa
RES_NOT_FOUND reserva não encontrada
RES_CANCELLED reserva cancelada
HRN_QUOTE_KEY_FAILURE falha na chave da tarifa, obtenha uma nova chave de tarifa atualizando a pesquisa
HRN_QUOTE_KEY_INVALID chave de tarifa inválida, obtenha uma nova chave de tarifa atualizando a pesquisa
SYS_OFFLINE sistema do fornecedor fora do ar ou inoperante
SUPPLIER_INITITIALIZATION impossível conectar ao fornecedor
SUPPLIER_ROUTER_EXCEPTION impossível conectar ao fornecedor
EJB_CREATE_EXCEPTION exceção de reserva
FINDER_EXCEPTION exceção de fornecedor
BML_FAIL exceção de fornecedor
PRICE_MISMATCH alteração de tarifa, obtenha nova tarifa atualizando a pesquisa ou selecionando novo quarto ou estabelecimento
CSV_FAIL código de segurança do cartão de crédito incorreto
PAYER_AUTH_REQUIRED O cartão de crédito exige o código seguro processo de cartão de crédito VBV/3DS recomendado na solicitação de reserva e nos procedimentos de reserva de teste.
PAYER_AUTH_FAILED código de segurança incorreto ou falha no processo do código de segurança
ITINERARY_ALREADY_BOOKED itinerário existente já encontrado no sistema

ErrorAttributes

Elemento tipo
entrada (objeto de entrada)
entrada
chave (objeto errorAttributesMap)
valor (string)

errorAttributesMap

Elemento Descrição
CC_TRANSACTIONSTATUS  
TRANSACTIONSTATUSMSG  
PA_TRANSACTIONSTATUS detalhe do VBV / 3DS
XID detalhe do VBV / 3DS
ACS_URL  
detalhe do VBV / 3DS
PA_REQ detalhe do VBV / 3DS
AUTH_CODE detalhe do VBV / 3DS
PAS_TRANSACTION_ID detalhe do VBV / 3DS
SUPPLIER_ERROR_CODE  

Exceção do exemplo de XML

<ns2:HotelRoomAvailabilityResponse size="0">
  <EanWsError>
    <itineraryId>-1</itineraryId>
    <handling>RECOVERABLE</handling>
    <category>DATA_VALIDATION</category>
    <exceptionConditionId>-1</exceptionConditionId>
    <presentationMessage>TravelNow.com cannot service this request.</presentationMessage>
    <verboseMessage>Data in this request could not be validated: Specified arrival date is prior to today's date.</verboseMessage>
    <ServerInfo serverTime="19:11:13.082-0500" timestamp="1311725473" instance="48" />
  </EanWsError>
  <customerSessionId>0ABAA825-0BE2-8912-CF12-59D0D9032F8</customerSessionId>
</ns2:HotelRoomAvailabilityResponse>