En la guía de solución de problemas de la Web, se abordan problemas y preguntas relacionados con los siguientes temas.
- Acceso al registro
- merchantID
- Validez de la puerta de enlace
- Validez del objeto
- Comercios directos
- CardInfo
- Errores OR_BIBED_15
Registro y acceso
Es posible que encuentres los siguientes errores en algún momento de la integración. En esta lista, se proporcionan algunas sugerencias útiles para solucionar problemas en caso de que surjan estos errores.
- Este comercio no está habilitado para Google Pay
- La API de Google Pay requiere un merchantId de Google para los sitios que configuran
PaymentsClientpara un entorno dePRODUCTION. UnmerchantIdde Google está asociado con uno o más dominios completamente calificados a través de la Consola de Google Pay y la Billetera. Consulta los detalles del error que se devolvieron para obtener más información. - Este comercio no completó el registro para usar la API de Google Pay. Ve a la consola (https://pay.google.com/business/console) para verificarlo.
- No completaste el proceso para registrar tus sitios web en la API de Google Pay. Revisa Solicita acceso a producción para registrarte con Google Pay & Wallet Console y solicita una revisión del uso que hace tu sitio web de la API de Google Pay.
- Este perfil de comercio no tiene acceso a esta función
- Google no configuró tu sitio web para usar la API de Google Pay. Revisa Solicitar acceso a producción para solicitar una revisión del uso que hace tu sitio web de la API de Google Pay a través de Google Pay & Wallet Console.
- Esta integración de la API de Google Pay está inhabilitada. Comunícate con nosotros para obtener más información (https://developers.google.com/pay/api/faq#how-to-get-support).
- Comunícate con nosotros para obtener más información sobre los pasos necesarios para volver a habilitar la API de Google Pay en tu Cuenta de Google.
- Tu dominio "example.com" no está registrado para usar esta API
- El dominio en el que se aloja tu confirmación de compra no está asociado con el
merchantIdque usas. Asegúrate de que el parámetromerchantIdsea correcto y de que tu dominio esté registrado a través de la Consola de Google Pay y Billetera. - Se debe llamar a la API de Google Pay en un contexto seguro.
- La API de Google Pay solo se puede usar en sitios web en un contexto seguro. Para obtener más información, consulta Contextos seguros.
- No se encontraron claves para este perfil de comercio
- Debes registrar tu clave de encriptación pública en Google a través de la Consola de Google Pay y la Billetera de Google para completar una integración de
DIRECTtokenizationSpecificationtype.
merchantId
Es posible que, en algún momento de la integración, encuentres los siguientes errores relacionados con merchantId. En esta lista, se proporcionan algunos consejos útiles para solucionar problemas en caso de que surjan estos errores.
- Se debe establecer merchantId.
- El parámetro
merchantIddentro dePaymentDataRequestdebe establecerse en el valor proporcionado con la consola de Google Pay & Wallet. Un parámetromerchantIdsolo es obligatorio cuando usas unPaymentsClientconfigurado para un entornoPRODUCTION. Revisa nuestra lista de tareas de integración para solicitar una revisión del uso que hace tu sitio web de la API de Google Pay y obtener tumerchantId. - merchantId no es una cadena
- El parámetro
merchantIddentro dePaymentDataRequestsiempre debe ser una cadena. Asegúrate de que el tipo del parámetromerchantIdque usas sea una cadena antes de llamar a la API. - No se registró merchantId.
- El parámetro
merchantIddentro dePaymentDataRequestse debe aprovisionar a través de la Consola de Google Pay y la Billetera de Google. Revisa Solicita acceso de producción para obtener más información.
Validez de la puerta de enlace
Es posible que, en algún momento de la integración, encuentres los siguientes errores relacionados con la validez de la puerta de enlace. En esta lista, se proporcionan algunos consejos útiles para solucionar problemas en caso de que surjan estos errores.
- Puerta de enlace desconocida "tu puerta de enlace"
- Actualmente, Google no admite el parámetro de puerta de enlace que especificaste en
paymentMethodTokenizationParameters.parameters. Comunícate con tu puerta de enlace para obtener más información sobre su identificador y los campos asociados, comogatewayMerchantId. - No se puede usar la puerta de enlace "example" en el modo de producción
- El valor del parámetro de la puerta de enlace de ejemplo solo se usa con fines de prueba y no se puede usar con un
PaymentsClientconfigurado para un entornoPRODUCTION. Comunícate con tu pasarela para obtener más información sobre los valores de los parámetros dePaymentMethodTokenizationSpecificationque debes establecer para usar con la API de Google Pay.
Validez del objeto
Es posible que, en algún momento de la integración, encuentres los siguientes errores relacionados con la validez del objeto. En esta lista, se proporcionan algunos consejos útiles para solucionar problemas en caso de que surjan estos errores.
- PaymentDataRequest de Google Pay no es un JSON válido
- El parámetro proporcionado a
loadPaymentDatasiempre debe ser un objetoPaymentDataRequestválido. - Se debe establecer transactionInfo.
- El parámetro
transactionInfodentro dePaymentDataRequestsiempre debe ser un objetoTransactionInfoválido.
Comercios directos
Es posible que, en algún momento de la integración, encuentres los siguientes errores relacionados con los comercios directos. En esta lista, se proporcionan algunos consejos útiles para solucionar problemas en caso de que surjan estos errores.
- Verificación de la firma
- Es posible que se produzca un error de verificación de firma si el
merchantIdes incorrecto. Esto puede ocurrir en el entorno deTESTcuando usas la biblioteca Tink paymentmethodtoken. Para evitar este problema, establece YOUR_MERCHANT_ID en12345678901234567890en lo siguiente: .recipientId("merchant:YOUR_MERCHANT_ID")
- No se puede desencriptar el token
- Si usas la biblioteca paymentmethodtoken de Tink para desencriptar un token, ten en cuenta lo siguiente:
- Asegúrate de que el entorno de respuesta de la API de Google Pay corresponda al entorno de paymentmethodtoken de Tink. Para obtener más detalles, consulta el siguiente ejemplo:
- Si el entorno
TESTdevolvió la respuesta de la API de Google Pay, Tink apunta al entorno de prueba para el desencriptado. - No modifiques la respuesta de la API de Google Pay antes de que se pase a Tink. Asegúrate de pasar el token completo que se devolvió en la respuesta de la API de Google Pay. Para obtener más detalles, consulta la siguiente nota:
- Verifica que tengas la clave privada correcta asociada a la clave pública que registraste en Google.
- Genera un par de claves públicas y privadas en Windows
- Si usas Windows y quieres seguir los pasos que se mencionan en Usa OpenSSL para generar un par de claves pública y privada, asegúrate de instalar Cygwin en tu máquina. Esto es necesario para ejecutar los comandos de Linux.
Objetos de error
Los objetos de error son objetos que devuelve una promesa rechazada de un método de JavaScript del cliente.
- PaymentsError
- Este objeto contiene detalles sobre los errores que muestran los métodos de JavaScript del cliente. Es posible que los errores no se muestren en un diálogo visible para el usuario.
| Propiedad | Tipo | Descripción |
|---|---|---|
statusCode |
String | Es un código corto que describe el tipo de error. |
statusMessage |
String | Mensaje para desarrolladores que describe el error encontrado y los posibles pasos para corregirlo. |
- Errores comunes
- Este objeto muestra los errores que puedes encontrar en todos los métodos de JavaScript. Asegúrate de revisar la consola para desarrolladores y ver si hay mensajes de error adicionales.
- ¿Qué es la función CardInfo?
- Google Pay indica a los consumidores que hay una tarjeta detrás del botón de pago de Google Pay, lo que renderiza tanto la red de la marca de la tarjeta como los últimos cuatro dígitos de la tarjeta.
- ¿Por qué la función CardInfo no se renderiza en mi implementación?
Para que la función CardInfo funcione, se deben cumplir las siguientes condiciones:
- Debes implementar la API de
createButton. - Debes configurar
ButtonOptions.buttonTypeenbuy,longopay. - El usuario debe tener una forma de pago disponible, según se define en tu objeto
CardParameters.
- Debes implementar la API de
- ¿Por qué el botón de pago de Google Pay se carga de forma indefinida?
- No quites los objetos de escucha de eventos de
onLoad. Si quitas los objetos de escucha de eventosonLoad, es posible que el botón de pago de Google Pay se cargue de forma indefinida. - ¿Por qué no aparece un mensaje de pago después de hacer clic en el botón de pago de Google Pay?
- Asigna una devolución de llamada del objeto de escucha de eventos al evento
ButtonOptions.onClick. - Trabaja con WebViews
- Sigue las guías para Android y iOS para asegurarte de que tu integración sea compatible con WebViews.
- Encabezado de respuesta HTTP
Cross-Origin-Opener-Policy - Si el encabezado de respuesta HTTP
Cross-Origin-Opener-Policyse establece ensame-origin, es posible que se impida que el navegador abra la ventana emergente necesaria para que los usuarios completen su transacción. Intenta cambiar el valor del encabezado asame-origin-allow-popupspara reducir esos problemas. - Demoras entre el evento de clic del usuario y la llamada a
loadPaymentData() -
Si hay una demora después de hacer clic en el botón de Google Pay (o en un botón de confirmación de compra similar) y antes de la llamada
loadPaymentData()(ejemplos:setTimeout(), llamadas de red adicionales o lógica de larga duración similar), esto puede hacer que se active el mecanismo de bloqueo de ventanas emergentes del navegador. Nuestra recomendación es que no se establezcan demoras entre el clic del usuario y la llamada aloadPaymentData().
| Código de estado | Descripción |
|---|---|
BUYER_ACCOUNT_ERROR |
El usuario actual de Google no puede proporcionar información de pago. |
DEVELOPER_ERROR |
Un parámetro pasado tiene un formato incorrecto. Es posible que aparezca un mensaje de error en la consola del navegador para todos los entornos configurados. |
MERCHANT_ACCOUNT_ERROR |
El sitio que accede a la API de Google Pay no tiene el permiso adecuado. Esto podría deberse a una configuración incorrecta o a un identificador de comerciante incorrecto establecido en la solicitud. Para obtener más detalles, consulta el campo |
INTERNAL_ERROR |
Error general del servidor. |
CardInfo
OR_BIBED_15 errores
Es posible que, en algún momento de la integración, encuentres un error OR_BIBED_15. En esta lista, se proporcionan algunos consejos útiles para solucionar problemas en caso de que surja este error.