Conectarse a un lector
Conecta tu aplicación a un lector de Stripe Terminal.
Nota
Si aún no has elegido ningún lector, compara los lectores de Terminal disponibles y elige el que mejor se adapte a tus necesidades.
Tap to Pay en Android (TTPA) permite a los usuarios aceptar pagos sin contacto en persona con dispositivos Android compatibles con NFC. TTPA requiere la última versión del SDK de Terminal Android. TTPA es compatible con las tarjetas sin contacto de Visa, Mastercard y American Express y los monederos móviles basados en NFC (Apple Pay, Google Pay y Samsung Pay). TTPA es una extensión del SDK de Terminal Android y permite realizar pagos directamente en tu aplicación de Android.
Para conectar la aplicación al lector Tap to Pay en un dispositivo Android compatible, sigue estos pasos:
- Inicializar el SDK para TTPA.
- Detecta lectores usando el SDK para confirmar la compatibilidad del dispositivo.
- Conéctate a un lector usando el SDK para aceptar pagos.
- Gestiona desconexiones inesperadas para asegurarse de que el usuario pueda seguir aceptando pagos si el lector se desconecta inesperadamente.
Si la aplicación se ejecuta en un dispositivo que no cumple con los criterios de compatibilidad de dispositivos, el SDK devuelve una TerminalException
que proporciona un contexto adicional en una devolución de llamada onFailure
.
Inicializar el SDK
TTPA opera en un proceso dedicado para hacer que las transacciones sean más seguras. En este proceso, se crea una segunda instancia de tu Application
. Para evitar errores inesperados causados por la ejecución de tu código en este proceso, puedes omitir la inicialización en tu Application
en este proceso marcando TapToPay.
.
Detectar lectores
Utiliza el método discoverReaders
para determinar el soporte de hardware para Tap to Pay en el dispositivo Android. discoverReaders
verifica los siguientes requisitos:
- El dispositivo contiene una antena y un conjunto de chips NFC en funcionamiento.
- El dispositivo tiene un almacén de claves respaldado por hardware.
- El dispositivo ejecuta una versión actual de Android (Android 11 o superior).
- Para la versión no simulada del lector Tap to Pay, la aplicación no se puede depurar.
Tu aplicación debe estar en primer plano para que el servicio del lector Tap to Pay se inicie correctamente.
Si la aplicación se ejecuta en un dispositivo que no cumple con los requisitos anteriores, la devolución de llamada onFailure
regresa con una TerminalException
que contiene un TerminalErrorCode y contexto adicional. Los fallos en esta etapa no puede procesarlos el usuario final.
El uso de la versión de producción no simulada del lector Tap to Pay con aplicaciones procesables no es compatible por razones de seguridad y cumplimiento de la normativa. Para probar tu integración con el lector Tap to Pay en Android, establece TapToPayDiscoveryConfiguration.
en true
durante el descubrimiento del lector. Debes establecer este valor en false
en la versión de liberación de tu aplicación.
Para comprobar si un dispositivo cumple con los requisitos de hardware y sistema operativo de Tap to Pay en tiempo de ejecución, utiliza la función Terminal.supportsReadersOfType. Como parte de la inicialización del SDK de Terminal, esta función requiere que tu usuario final acepte solicitudes de permiso para acceder a la ubicación y al Bluetooth. Esta función tarda aproximadamente 10 milisegundos en ejecutarse en la mayoría de los dispositivos.
Conectarse a un lector
Para aceptar pagos de Tap to Pay, proporciona el lector detectado del paso anterior al método connectReader
.
connectReader
verifica los siguientes requisitos:
- El dispositivo tiene una conexión estable a Internet.
- El dispositivo no está rooteado y el gestor de arranque del dispositivo está bloqueado y sin cambios.
- El dispositivo utiliza los servicios de Google Móvil.
- El dispositivo ejecuta una versión actual de Android (Android 11 o superior).
- La aplicación utiliza una versión compatible del SDK de Tap to Pay (actualmente 2.20.0 o superior).
Si tu aplicación se ejecuta en un dispositivo que no cumple con los requisitos anteriores, la devolución de llamada onFailure
’ regresa con una TerminalException
que contiene un TerminalErrorCode y contexto adicional. El usuario final puede tomar medidas en algunos de los motivos de error. Por ejemplo:
STRIPE_
: el usuario puede conectarse a una fuente de Internet estable.API_ CONNECTION_ ERROR TAP_
: el usuario puede actualizar su sistema operativo si hay una actualización disponible del fabricante del dispositivo.TO_ PAY_ UNSUPPORTED_ ANDROID_ VERSION
Debes registrar tu lector en una ubicación tras la conexión. Para hacerlo, crea y usa un TapToPayConnectionConfiguration
con el locationId
establecido en el ID de ubicación relevante al conectar.
Gestionar las desconexiones inesperadas
Pueden producirse desconexiones inesperadas entre tu aplicación y el lector. Por ejemplo, el lector Tap to Pay podría desconectarse inesperadamente porque:
- Android OS finaliza el servicio del lector Tap to Pay debido a limitaciones de memoria.
- El dispositivo pierde la conexión a Internet.
Hay dos maneras de gestionarlo:
Intenta la reconexión de forma automática
Stripe intenta automáticamente reconectarse de forma predeterminada cuando se produce una desconexión inesperada. Configura TapToPayReaderListener
para las devoluciones de llamada de reconexión automática en tu aplicación.
Cuando el SDK intenta la reconexión de forma automática, ocurre lo siguiente:
- Cuando se produce una desconexión, el SDK intenta reconectarse automáticamente y te notifica a través de
onReaderReconnectStarted
. Asegúrate de que la app indique que se ha perdido la conexión y que se está realizando una reconexión.- Puedes usar el objeto
Cancelable
para detener el intento de reconexión en cualquier momento.
- Puedes usar el objeto
- Si el SDK se reconecta correctamente al lector, Stripe te notifica a través de
onReaderReconnectSucceeded
. Asegúrate de que la aplicación indique que se ha restablecido la conexión y de que se reanudan las operaciones normales. - Si el SDK no puede reconectarse al lector, Stripe te notifica a través de
onReaderReconnectFailed
yTapToPayReaderListener.
. Asegúrate de que la aplicación indique que se ha producido una desconexión inesperada.onDisconnect
Gestiona la desconexión de forma manual
Para gestionar las desconexiones del lector, puedes establecer autoReconnectOnUnexpectedDisconnect
como false
e implementar la devolución de llamada TapToPayReaderListener.
. Esto permite que tu aplicación se vuelva a conectar al lector Tap to Pay y, cuando corresponda, notifique al usuario qué ha salido mal y cómo puede habilitar el acceso a Tap to Pay. Los usuarios finales pueden resolver algunos errores, como problemas de conectividad a Internet.
Próximos pasos
Has conectado tu aplicación al lector. A continuación, recoge tu primer pago de Stripe Terminal.
El nombre y el logotipo de BBPOS y Chipper™ son marcas comerciales o marcas registradas de BBPOS Limited en los Estados Unidos y/u otros países. El nombre y el logotipo de Verifone® son marcas comerciales o marcas registradas de Verifone en los Estados Unidos y/u otros países. El uso de las marcas comerciales no implica la aprobación por parte de BBPOS o Verifone.