Disponibilidad de billetera
Detecte la disponibilidad de Apple Pay y Google Pay antes de renderizar los controles de la billetera con los SDKs de DEUNA Web, iOS, Android y React Native.
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#
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');const wallets = await deunaSDK.getWalletsAvailable({orderToken, userInfo});
setApplePayVisible(wallets.includes('apple_pay'));
setGooglePayVisible(wallets.includes('google_pay'));deunaSDK.getWalletsAvailable(
params: GetWalletsAvailableParams(orderToken: orderToken, userInfo: userInfo)
) { wallets, error in
applePayButton.isHidden = !wallets.contains(.applePay)
if let error { showWalletRecovery(error) }
}val params = GetWalletsAvailableParams(orderToken = orderToken, userInfo = userInfo)
deunaSDK.getWalletsAvailable(this, params) { wallets, error ->
googlePayButton.isVisible = wallets.contains(WalletProvider.GOOGLE_PAY)
error?.let(::showWalletRecovery)
}Modos de parámetros#
| Formato de llamada | Uso |
|---|---|
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 billetera | Integraciones 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#
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 elegibles
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 billetera
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ía
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 tarde
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.