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 BluetoothScanDiscoveryConfiguration
.
Proximidad Bluetooth * BBPOS Chipper 2X BT only
La proximidad de Bluetooth filtros los resultados de búsqueda para mostrar el lector más cercano. Cuando se detecta, el lector parpadea con luces multicolores, lo que permite al usuario identificar al lector detectado entre muchos otros lectores. Después de que el SDK detecte un lector, no cambiará a un lector más cercano a menos que apagues el lector detectado.
Ten en cuenta que, cuando se utiliza la proximidad Bluetooth, el SDK devuelve el lector a la devolución de llamada de la aplicación dos veces. La primera vez, la aplicación recibe un objeto Reader
rellenado solo con el número de serie del lector. Después de un breve retraso, tu aplicación recibe el mismo objeto Reader
rellenado con nueva información, como el nivel de batería del lector.
Recomendamos mostrar el lector detectado en la interfaz de usuario, lo que permite al usuario confirmar la conexión con el lector o cancelarla si no quiere conectarse a este lector.
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 DiscoveryDelegate.
con la última lista de lectores cercanos.
Durante el proceso de detección, el SCPConnectionStatus
del Terminal pasa a SCPConnectionStatus.
mientras la detección 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.
Para que tu aplicación se ejecute en segundo plano y permanezca conectada al lector, configúrala para incluir el modo de segundo plano requerido.
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 MobileReaderDelegate
incluye un método reader:didDisconnect:
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
MobileReaderDelegate
. - Pasa el
MobileReaderDelegate
a tuBluetoothConnectionConfiguration
. - Cuando el SDK envíe
reader:didStartReconnect:disconnectReason:
a tu aplicación, muestra un mensaje que anuncie 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 realizada correctamente enviando
readerDidSucceedReconnect:
, muestra un mensaje anunciando que la conexión se ha restablecido y que se reanudarán las operaciones normales. - Si el SDK no puede volver a conectarse al lector y envía tanto
readerDidFailReconnect:
yreader:didDisconnect:
, muestra un mensaje que indica 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 UserDefaults (iOS).
- 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 MobileReaderDelegate
de la integración recibe la devolución de llamada didStartInstallingUpdate
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 connecting
mientras se instala la actualización 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 MobileReaderDelegate
con didFinishInstallingUpdate
. 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 iOS 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 MobileReaderDelegate
en cualquier momento en que el lector esté conectado pero no realizando una transacción. Si está disponible una actualización opcional, el MobileReaderDelegate
de tu aplicación recibe la devolución de llamada didReportAvailableUpdate
con el objeto ReaderSoftwareUpdate
que contiene los detalles de la actualización, incluyendo:
- Tiempo estimado para que se complete la actualización (
durationEstimate
) - Marca de tiempo 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 didReportAvailableUpdate
, 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 MobileReaderDelegate
informa del progreso de la actualización en el método didReportReaderSoftwareUpdateProgress
.
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.