Saltar al contenido principal
En esta página

llamar getWalletsAvailable antes de renderizar un botón de billetera de propiedad del comerciante. El SDK combina la configuración del comerciante proporcionada por DEUNA con las capacidades del navegador o dispositivo actual.

Decisión de disponibilidad#

Diagrama de flujo
1Initialize SDK withpublic API key2CallgetWalletsAvailable3-- Yes4Hide wallet button5-- Yes6Show provider button7Open Elements from acustomer gesture
Proveedor o procesadorComercio o cliente

Verificar por plataforma#

const wallets = await DeunaSDK.getWalletsAvailable({
  orderToken,
  userInfo: {email: 'ada@example.com'},
});

applePayButton.hidden = !wallets.includes('APPLE_PAY');
googlePayButton.hidden = !wallets.includes('GOOGLE_PAY');

Modos de parámetros#

Formato de llamadaUso
getWalletsAvailable()Resolver las billeteras configuradas sin información de transacción específica del pedido.
{orderToken, userInfo}Resolver las credenciales del comerciante con el contexto del pedido antes de que el cliente haga clic. Recomendado para el pago con billetera.
Explícito APPLE_PAY / GOOGLE_PAY configuración de la billeteraIntegraciones avanzadas que proporcionan credenciales aprobadas directamente en lugar de obtenerlas del punto final de la bóveda de DEUNA.

Proporcionar el pedido antes de que el cliente haga clic es especialmente importante para Apple Pay: el controlador del botón puede proceder inmediatamente dentro de la ventana de interacción del cliente del navegador.

Iniciar desde el botón#

JavaScript
applePayButton.addEventListener('click', async () => {
  await DeunaSDK.initElements({
    orderToken,
    userInfo,
    types: [{name: 'APPLE_PAY'}],
    callbacks: {
      onSuccess: verifyCredentialOrOrder,
      onError: showWalletRecovery,
      onClosed: restorePaymentMethods,
    },
  });
});

Uso GOOGLE_PAY para Google Pay. Mantenga la llamada directamente en el controlador de clic o toque; evite temporizadores, esperas no relacionadas o llamadas de retorno en segundo plano antes de abrir la hoja nativa.

Almacenamiento en caché y actualización#

Los SDKs actuales almacenan en caché los proveedores y las credenciales para que el lanzamiento posterior de la billetera sea rápido. En el SDK para la Web, cree DeunaSDK.newInstance() cuando una página realmente necesite un estado de SDK aislado. En las aplicaciones móviles, mantenga una instancia del SDK inicializada para todo el ciclo de vida de la integración activa.

Verificar nuevamente cuando el cliente cambia a un pedido con diferentes condiciones de elegibilidad, cambia el contexto del comerciante o inicia una nueva sesión de aplicación. Nunca mostrar la billetera solo porque estuvo disponible para un pedido diferente.

¿Por qué no está disponible la billetera?#

El comerciante o la conexión no son elegiblesConfiguración

Verificar que la conexión de la billetera, el entorno, el país, la moneda y el pedido estén habilitados para la cuenta. Los credenciales de sandbox y producción son distintos.

El navegador o dispositivo actual no puede utilizar la billeteraCapacidad

Apple Pay requiere un dispositivo Apple elegible, navegador, configuración de billetera y configuración del dominio del comerciante. Google Pay requiere un navegador o dispositivo Android elegible y servicios de Google compatibles.

La llamada de disponibilidad devuelve un error o una lista vacíaRed e identidad

Verificar la inicialización, la clave API pública, el entorno, el acceso a la red y el token de pedido. Considerar una lista vacía como "no mostrar el control de la billetera", no como una instrucción para omitir la verificación.

La hoja de la billetera está bloqueada o se abre demasiado tardeAcción del usuario

Ejecutar la disponibilidad antes de tocar, almacenar el resultado a través del SDK y llamar initElements directamente desde el controlador del botón de la billetera.

Experiencia de usuario y accesibilidad#

  • Utilizar los activos, etiquetas, tamaños y reglas de contraste aprobados por el proveedor.
  • Ocultar las billeteras no disponibles en lugar de dejar un botón deshabilitado y sin explicación.
  • Mantener un método de pago estándar disponible cuando la billetera no puede abrirse.
  • Anunciar los errores de lanzamiento y devolver el foco al botón de la billetera después de cerrarse.
  • Probar la rotación del dispositivo, texto grande, lectores de pantalla, navegación con teclado y diseños incrustados estrechos.