Solução de problemas

O guia de solução de problemas da Web aborda questões e problemas relacionados aos seguintes tópicos:

Registro e acesso

Você pode encontrar os seguintes erros em algum momento da integração. Essa lista oferece algumas dicas úteis para solucionar problemas caso esses erros apareçam.

Este comerciante não está habilitado para o Google Pay
A API Google Pay exige um merchantId do Google para sites que configuram PaymentsClient para um ambiente PRODUCTION. Um merchantId do Google está associado a um ou mais domínios totalmente qualificados pelo Console do Google Pay e da Carteira. Confira os detalhes do erro retornado para mais informações.
O comerciante não concluiu o registro para usar a API Google Pay. Acesse o console (https://pay.google.com/business/console) para verificar.
Você não concluiu o processo de registro dos seus sites na API Google Pay. Consulte Solicitar acesso de produção para se registrar usando o Console do Google Pay e da Carteira e pedir uma análise do uso da API Google Pay pelo seu site.
Este perfil do comerciante não tem acesso a esse recurso
O Google não configurou seu site para usar a API Google Pay. Consulte Solicitar acesso de produção para pedir uma análise do uso da API Google Pay pelo seu site no Console do Google Pay e da Carteira.
Esta integração da API Google Pay está desativada. Entre em contato para mais informações (https://developers.google.com/pay/api/faq#how-to-get-support).
Entre em contato para saber mais sobre as etapas necessárias para reativar a API Google Pay na sua Conta do Google.
O domínio "example.com" não está registrado para usar essa API
O domínio em que sua finalização de compra está hospedada não está associado ao merchantId que você usa. Verifique se o parâmetro merchantId está correto e se o domínio está registrado no Console do Google Pay e da Carteira.
A API Google Pay deve ser chamada em contexto seguro.
A API Google Pay só pode ser usada em sites em um contexto seguro. Para mais informações, consulte Contextos seguros.
Nenhuma chave encontrada para este perfil de comerciante
Registre sua chave de criptografia pública com o Google pelo Console do Google Pay e da Carteira para concluir uma integração do DIRECTtokenizationSpecification type.

merchantId

Em algum momento da sua integração, talvez você encontre os seguintes erros relacionados a merchantId. Essa lista oferece algumas dicas úteis para solucionar problemas caso esses erros apareçam.

merchantId precisa ser definido.
O parâmetro merchantId em PaymentDataRequest precisa ser definido com o valor fornecido usando o Console do Google Pay e da Carteira. Um parâmetro merchantId só é necessário quando você usa um PaymentsClient configurado para um ambiente PRODUCTION. Consulte nossa lista de verificação de integração para solicitar uma análise do uso da API Google Pay pelo seu site e para conseguir seu merchantId.
merchantId não é uma string
O parâmetro merchantId dentro de PaymentDataRequest precisa ser sempre uma string. Verifique se o tipo do parâmetro merchantId que você usa é uma string antes de chamar a API.
merchantId não está registrado.
O parâmetro merchantId em PaymentDataRequest precisa ser provisionado pelo Console do Google Pay e da Carteira. Consulte Solicitar acesso de produção para mais informações.

Validade do gateway

Você pode encontrar os seguintes erros relacionados à validade do gateway em algum momento da sua integração. Essa lista oferece algumas dicas úteis para solucionar problemas caso esses erros apareçam.

Portal desconhecido 'yourgateway'
No momento, o parâmetro de gateway especificado em paymentMethodTokenizationParameters.parameters não é compatível com o Google. Entre em contato com o gateway para mais informações sobre o identificador e os campos associados, como gatewayMerchantId.
Gateway "example" não pode ser usado no modo de produção
O valor do parâmetro do gateway de exemplo é usado apenas para fins de teste e não pode ser usado com um PaymentsClient configurado para um ambiente PRODUCTION. Entre em contato com seu gateway para mais informações sobre os valores de parâmetros PaymentMethodTokenizationSpecification que você precisa definir para usar com a API Google Pay.

Validade do objeto

Talvez você encontre os seguintes erros relacionados à validade do objeto em algum momento da sua integração. Essa lista oferece algumas dicas úteis para solucionar problemas caso esses erros apareçam.

PaymentDataRequest do Google Pay não é um JSON válido
O parâmetro fornecido a loadPaymentData precisa ser sempre um objeto PaymentDataRequest válido.
transactionInfo precisa ser definido.
O parâmetro transactionInfo dentro de PaymentDataRequest precisa ser sempre um objeto TransactionInfo válido.

Comerciantes diretos

Talvez você encontre os seguintes erros relacionados a comerciantes diretos em algum momento da sua integração. Essa lista oferece algumas dicas úteis para solucionar problemas caso esses erros apareçam.

Verificação de assinatura
Talvez você encontre um erro de verificação de assinatura se o merchantId estiver errado. Isso pode acontecer no ambiente TEST quando você usa a biblioteca paymentmethodtoken do Tink. Para evitar esse problema, defina YOUR_MERCHANT_ID como 12345678901234567890 em:
.recipientId("merchant:YOUR_MERCHANT_ID")
Falha ao descriptografar o token
Se você usa a biblioteca paymentmethodtoken do Tink para descriptografar um token, siga estas etapas:
  • Garanta que o ambiente de resposta da API Google Pay corresponda ao ambiente paymentmethodtoken do Tink. Para mais detalhes, veja este exemplo:
    • Se a resposta da API Google Pay retornar por meio do ambiente TEST, o Tink indicará o ambiente de teste para a descriptografia.
  • Não modifique a resposta da API Google Pay antes de transmiti-la ao Tink. Certifique-se de enviar o token completo retornado por meio da resposta da API Google Pay. Para mais detalhes, consulte a seguinte observação:
  • Certifique-se de que você tem a chave privada adequada associada à chave pública registrada no Google.
Geração de um par de chaves pública e privada no Windows
Se você usa o Windows e quer seguir as etapas mencionadas em Como usar o OpenSSL para gerar um par de chaves privada e pública, instale Cygwin na sua máquina. Essa ação é necessária para executar os comandos do Linux.

Objetos de erro

Objetos de erro são objetos retornados por uma promessa rejeitada de um método JavaScript do cliente.

PaymentsError
Este objeto tem detalhes sobre erros retornados pelos métodos JavaScript do cliente. Talvez os erros não sejam exibidos em uma caixa de diálogo voltada para o usuário.
Propriedade Tipo Descrição
statusCode String Código curto que descreve o tipo de erro.
statusMessage String Mensagem voltada para o desenvolvedor que descreve o erro encontrado e as possíveis etapas para corrigi-lo.
Erros comuns
Esse objeto mostra erros que podem ser encontrados em todos os métodos JavaScript. Certifique-se de verificar o console do desenvolvedor para ver se há outras mensagens de erro.
Código de status Descrição
BUYER_ACCOUNT_ERROR O usuário atual do Google não pode fornecer informações de pagamento.
DEVELOPER_ERROR

Um parâmetro enviado está formatado incorretamente. Uma mensagem de erro pode aparecer no console do navegador para todos os ambientes configurados.

MERCHANT_ACCOUNT_ERROR

O site que acessa a API Google Pay não tem a permissão correta. Isso pode ocorrer devido a uma configuração incorreta ou a um identificador do comerciante incorreto definido na solicitação. Para mais detalhes, consulte o campo statusMessage. Se você continuar tendo problemas, entre em contato com o suporte.

INTERNAL_ERROR Erro geral do servidor.

CardInfo

O que é o recurso CardInfo?
O Google Pay indica aos consumidores que há um cartão associado ao botão de pagamento do Google Pay, que renderiza a rede da marca e os últimos quatro dígitos do cartão.
Por que o recurso CardInfo não é renderizado na minha implementação?

Para que o recurso CardInfo funcione, precisamos das seguintes condições:

Por que o botão de pagamento do Google Pay carrega indefinidamente?
Não remova os listeners de eventos onLoad. Se você remover os listeners de eventos onLoad, o botão de pagamento do Google Pay poderá carregar indefinidamente.
Por que não aparece uma solicitação de pagamento depois que clico no botão de pagamento do Google Pay?
Atribua um callback de listener de eventos ao evento ButtonOptions.onClick.

OR_BIBED_15 erros

Você pode encontrar um erro OR_BIBED_15 em algum momento da integração. Esta lista oferece algumas dicas úteis para solucionar problemas caso esse erro apareça.

Como trabalhar com WebViews
Siga os guias para Android e iOS para garantir que sua integração seja compatível com WebViews.
Cabeçalho de resposta HTTP Cross-Origin-Opener-Policy
Se o cabeçalho de resposta HTTP Cross-Origin-Opener-Policy estiver definido como same-origin, isso poderá impedir que o navegador abra o pop-up necessário para que os usuários concluam a transação. Tente mudar o valor do cabeçalho para same-origin-allow-popups e reduzir esses problemas.
Atrasos entre o evento de clique dos usuários e a chamada para loadPaymentData()
Se houver um atraso após clicar no botão do Google Pay (ou em um botão de finalização de compra semelhante) e antes da chamada loadPaymentData() (exemplos: setTimeout(), outras chamadas de rede ou lógica semelhante de longa duração), isso pode fazer com que o mecanismo de bloqueio de pop-ups do navegador seja acionado. Recomendamos que não haja atrasos entre o clique do usuário e a chamada loadPaymentData().