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.
Los lectores conectados por Bluetooth son dispositivos Bluetooth LE. Recopilan detalles de pago, pero dependen de un dispositivo móvil emparejado para la comunicación con Stripe.
Para conectar la aplicación a un lector Terminal mediante Bluetooth, sigue estos pasos:
Precaución
No uses la configuración del dispositivo móvil para emparejarlo con tu lector. Emparejar el lector a través de la configuración del dispositivo hace que el lector no esté disponible para conectarse a tu aplicación.
Detectar lectoresLado del cliente
Para empezar, asegúrate de que el lector esté encendido y cerca de él.
Luego, desde tu aplicación, busca lectores cercanos conectados a Bluetooth con el método discoverReaders
, usando BluetoothDiscoveryConfiguration
.
Escaneo Bluetooth
El escaneo Bluetooth busca todos los lectores cercanos y devuelve a tu aplicación una lista de lectores detectados. A medida que continúa el proceso de detección, el SDK sigue invocando el método onUpdateDiscoveredReaders
con la última lista de lectores cercanos.
Durante el proceso de detección, el connectionStatus
del Terminal pasa a ConnectionStatus.
mientras el descubrimiento está en curso.
Con el método de detección de escaneo Bluetooth, puedes establecer un tiempo de espera para escanear durante un período de tiempo determinado, que puedes usar para gestionar la vida útil de la batería o activar un mensaje de error si no se encuentran dispositivos.
En tu aplicación móvil, te recomendamos mostrar una lista de actualización automática de los lectores detectados, con números de serie o etiquetas para ayudar a los usuarios a identificar sus lectores.
Conectarse a un lectorLado del cliente
Para conectarte a un lector detectado, llama al método connectReader
desde tu aplicación.
Debes registrar tu lector en una ubicación tras la conexión. Para hacerlo, crea y utiliza una BluetoothConnectionConfiguration
con el locationId
establecido en el ID de ubicación relevante al conectarte.
Usar el modo de espera
No programes tu aplicación para que llame a disconnectReader
con el fin de ahorrar energía. El lector gestiona de forma eficiente la administración de energía usando su modo de espera.
Gestiona las desconexiones del lector
A veces pueden producirse desconexiones del lector entre tu aplicación y el lector. Por ejemplo, el lector puede desconectarse de la aplicación si , está fuera de rango o se queda sin batería. Para simular una desconexión inesperada durante las pruebas, puedes apagar el lector.
El MobileReaderListener
incluye una devolución de llamada onDisconnect
que proporciona a tu aplicación el DisconnectReason
para ayudar a identificar por qué se desconectó el lector.
Cuando un lector se desconecta, intentamos reconectarlo automáticamente de forma predeterminada y te recomendamos que muestres notificaciones en tu aplicación que retransmitan el estado del lector durante todo el proceso.
Para mostrar notificaciones en tu aplicación durante la reconexión automática, haz lo siguiente:
- Implementa las devoluciones de llamada de reconexión del lector en el
MobileReaderListener
. - Transfiere el
MobileReaderListener
a tuBluetoothConnectionConfiguration
. - Cuando el SDK envía onReaderReconnectStarted a tu aplicación, muestra un mensaje anunciando que el lector ha perdido la conexión y que la reconexión está en curso.
- Puedes usar el objeto
Cancelable
para detener el intento de reconexión en cualquier momento.
- Puedes usar el objeto
- Cuando el SDK indique una reconexión exitosa enviando
onReaderReconnectSucceeded
, muestra un mensaje anunciando que la conexión se ha restaurado y que se reanudará el funcionamiento con normalidad. - Si el SDK no puede volver a conectarse al lector y envía tanto
onReaderReconnectFailed
comoonDisconnect
, muestra un mensaje que indique que se ha producido una desconexión inesperada.
Para gestionar las desconexiones del lector, puedes hacer lo siguiente:
- Establece
autoReconnectOnUnexpectedDisconnect
enfalse
durante la conexión. - Gestiona la devolución de llamada de desconexión para mostrar un mensaje en la aplicación que alerte al usuario de que el lector se ha desconectado inesperadamente, y que se inicia la detección y conexión del lector.
Reinicia el lector conectado
Stripe Reader M2 y BBPOS WisePad 3 se reinician automáticamente después de 24 horas de funcionamiento. Sin embargo, puedes forzar al lector a que se reinicie y restablezca su temporizador de 24 horas con la API rebootReader
. Después de esta acción, el lector se desconecta del SDK y se reinicia. Si estás utilizando la reconexión automática, el SDK intenta restaurar la conexión con el lector.
Reconexión automática al iniciar la aplicación
Stripe Terminal no se vuelve a conectar automáticamente a un lector cuando se inicia la aplicación. En su lugar, puedes crear un flujo de reconexión almacenando los ID del lector e intentando conectarte a un lector conocido al iniciarse.
- Cuando te conectes a un lector de forma satisfactoria, guarda su número de serie en una ubicación de almacenamiento persistente de datos, como la API Shared Preferences (Android).
- Cuando se inicie la aplicación, comprueba si hay un número de serie guardado en la ubicación de almacenamiento persistente de datos. Si se encuentra uno, llama al método
discoverReaders
para que tu aplicación pueda intentar encontrar ese lector nuevamente. - Si el número de serie guardado coincide con cualquiera de los lectores detectados, intenta conectarte a ese lector con el objeto de lector coincidente devuelto de la llamada a
discoverReaders
. Si no se encuentra el lector previamente conectado, detén el proceso de detección.
Muestra alguna interfaz de usuario durante el proceso de detección y conexión para indicar que se está produciendo una reconexión automática.
Actualiza el software del lectorLado del cliente
Tu aplicación debe actualizar los lectores móviles para aplicar lo siguiente:
- Configuraciones regionales que te mantienen al día respecto a los requisitos de la red de tarjetas y del emisor
- Actualizaciones de seguridad
Las actualizaciones necesarias comienzan a instalarse cuando te conectas al lector. No puedes usar el lector hasta que se complete la actualización.
Nota
Para instalar actualizaciones, el nivel de batería del lector debe ser superior al 50 %.
Actualizaciones necesarias
Cuando las actualizaciones urgentes están disponibles para el lector, el MobileReaderListener
de la integración recibe onStartInstallingUpdate
con un ReaderSoftwareUpdate
.
El ReaderSoftwareUpdate
proporciona los detalles necesarios de la actualización, incluida una estimación de la duración total de la actualización, indicada por durationEstimate
.
Durante el proceso de instalación, el connectionStatus
del Terminal pasa a ConnectionStatus.
mientras la actualización se instala en el lector.
Tu aplicación debe avisar a los usuarios de que se está instalando una actualización y mostrar el progreso en tu interfaz de usuario. Deja claro por qué la conexión puede tardar más de lo habitual.
Si falla el proceso de la actualización necesaria, Stripe comunica el error al MobileReaderListener
con onFinishInstallingUpdate
. No puedes volver a conectarte al lector después de que falle la actualización requerida, a menos que se cumplan las siguientes condiciones:
- El lector ejecuta la última versión del software disponible para la ubicación en los últimos 30 días.
- La versión del SDK de Android es mayor o igual a
3.
.5. 0
Si se cumplen las condiciones, el proceso de conexión se realiza correctamente a pesar de una actualización incompleta. Stripe volverá a intentar realizar la actualización necesaria la próxima vez que te conectes a ese lector hasta que se instale correctamente.
Puedes cancelar las actualizaciones obligatorias utilizando el objeto Cancelable
, que también provoca un fallo en la conexión con el lector. No puedes cancelar actualizaciones solo incrementales.
Actualizaciones opcionales
Puedes aplazar las actualizaciones opcionales hasta la fecha especificada, después de la cual serán obligatorias. El SDK te avisa de las actualizaciones opcionales a través del MobileReaderListener
en cualquier momento en que el lector esté conectado pero no realizando una transacción. Si está disponible una actualización opcional, el MobileReaderListener
de tu aplicación recibe la devolución de llamada onReportAvailableUpdate
con el objeto ReaderSoftwareUpdate
que contiene los detalles de la actualización, incluyendo:
- Tiempo estimado para que se complete la actualización (
durationEstimate
) - Fecha a partir de la cual se requiere la actualización (
requiredAt
)
En tu aplicación, notifica a los usuarios que hay una actualización disponible y muestra un mensaje para continuar opcionalmente con la actualización.
Para proceder a la actualización previamente informada con onReportAvailableUpdate
, llama a Terminal.
.
La actualización disponible también se almacena en el objeto lector como reader.
.
A medida que avanza la actualización, bloquea al usuario para que no abandone la página en tu aplicación e indícale que debe mantener el lector dentro del alcance y encendido hasta que se complete la actualización. Recomendamos también que le proporciones a tu usuario un indicador visual del progreso de la actualización. El MobileReaderListener
informa del progreso de la actualización en el método onReportReaderSoftwareUpdateProgress
.
Cuando haya pasado la fecha requiredAt
de una actualización opcional, la actualización se instalará la próxima vez que se conecte el lector.
Para obtener más información sobre cómo asegurarse de que la aplicación gestiona los diferentes tipos de actualizaciones que puede tener un lector, consulta Prueba de actualizaciones del lector.
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.