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 inteligentes ejecutan el software del lector de Stripe para comunicarse directamente con Stripe a través de Internet. Conectar tu aplicación a un lector inteligente requiere tres pasos:
- Registrar un lector en tu cuenta de Stripe.
- Detectar lectores con el SDK.
- Conectar a un lector con el SDK.
Registra un lectorLado del servidor
Antes de poder conectar tu aplicación a un lector inteligente, debes registrar el lector en tu cuenta.
Regístrate en el Dashboard
Puedes añadir tu lector directamente en el Dashboard.
Registro por código de registro
- En la página Lectores, haz clic en Registrar lector.
- Si tienes un Verifone P400, introduce la secuencia de teclas
0-7-1-3-9
para mostrar un código de registro único. Si tienes un BBPOS WisePOS E o Stripe Reader S700, ve a la configuración del lector y pulsa Generar código de emparejamiento. - Introduce el código de registro y haz clic en Siguiente.
- Opcionalmente, elige un nombre para el lector.
- Si ya has creado una Ubicación, elige la nueva Ubicación del lector. De lo contrario, haz clic en + Añadir nueva para crear una.
- Haz clic en Registrar para terminar de registrar tu lector.
Registro por número de serie
- En la página Lectores, haz clic en Registrar lector.
- Busca el número de serie en el dispositivo e introdúcelo. Para registrar varios dispositivos a la vez, puedes introducir varios números de serie separados por comas.
- Opcionalmente, elige un nombre para el lector.
- Si ya has creado una Ubicación, elige la nueva Ubicación del lector. De lo contrario, haz clic en + Añadir nueva para crear una.
- Haz clic en Registrar para terminar de registrar tu lector.
Registro por pedido de hardware
- En la página Pedidos de hardware, busca un pedido con el estado «enviado» o «entregado». Haz clic en el menú de desbordamiento () que aparece al final de la fila y, luego, en Registrar.
- En la página Registrar lectores, elige uno o más lectores del pedido de hardware para registrar y haz clic en Registrar.
- Opcionalmente, elige un nombre para el lector. Si has elegido varios lectores, el nombre sirve como prefijo y nombramos los lectores secuencialmente (por ejemplo, para una entrada determinada de «Lector de prueba», nombramos a los lectores «Lector de prueba 1», «Lector de prueba 2» y así sucesivamente).
- Si ya has creado una Ubicación, elige la nueva Ubicación del lector. De lo contrario, haz clic en + Añadir nueva para crear una.
- Haz clic en Registrar para terminar de registrar tus lectores.
Regístrate usando la API
Para implementaciones más grandes, permite que los usuarios del campo reciban y configuren nuevos lectores por su cuenta. En tu aplicación, crea un flujo para registrar un lector con la API de Stripe.
- Si tienes un Verifone P400, introduce la secuencia de teclas
0-7-1-3-9
para mostrar un código de registro único. Si tienes un BBPOS WisePOS E o Stripe Reader S700, ve a la configuración del lector y pulsa Generar código de emparejamiento. - El usuario introduce el código en tu aplicación.
- Tu aplicación envía el código a Stripe:
Para confirmar que has registrado un lector correctamente, enumera todos los lectores que has registrado en esa ubicación:
Detectar lectoresLado del cliente
Después de registrar el lector en tu cuenta, busca lectores registrados previamente para conectarte a tu aplicación de punto de venta con discoverReaders
, mediante InternetDiscoveryConfiguration
.
Puedes determinar el alcance de tu descubrimiento utilizando la location
en la que registraste al lector en el paso anterior.
Al descubrir lectores inteligentes, el método DiscoveryDelegate.
solo se llama una vez por llamada a discoverReaders
. didUpdateDiscoveredReaders
devuelve una lista vacía de lectores si no hay lectores registrados o si no hay lectores asociados con la ubicación dada. Si realizas una llamada posterior de discoverReaders
para actualizar la lista, primero debes cancelar la llamada anterior con el Cancelable
devuelto por discoverReaders
.
La InternetDiscoveryConfiguration
admite un valor opcional de timeout
para descubrir lectores en Internet. Esto garantiza una alternativa más rápida a la detección del lector sin conexión si falla el intento en Internet.
Conectarse a un lectorLado del cliente
Para conectar tu aplicación de punto de venta a un lector, llama a connectReader
con el lector elegido utilizando la InternetConnectionConfiguration
.
Múltiples conexiones
Solo una instancia del SDK de Stripe Terminal puede conectarse a un lector en un momento dado. De forma predeterminada, cuando llamas a connectReader
desde otra aplicación, la conexión entrante reemplaza la conexión existente del SDK al lector y el SDK conectado previamente se desconecta del lector. El método connectReader
toma un objeto de configuración con una propiedad failIfInUse
, cuyo valor predeterminado es false
. Cuando tu aplicación establece failIfInUse
en true, la llamada connectReader
tiene un comportamiento alternativo en el que la conexión entrante falla cuando el lector está en medio de una llamada collectPaymentMethod
o confirmPaymentIntent
iniciada por otro SDK. Si el lector está conectado a otro SDK pero está inactivo (muestra la pantalla de bienvenida antes de llamar a collectPaymentMethod
), establecer failIfInUse
no tiene ningún cambio en el comportamiento de la conexión y la solicitud de conexión entrante siempre puede interrumpir la conexión existente del SDK al lector.
failIfInUse es false (predeterminado) | failIfInUse es true | |
---|---|---|
connectReader llamado desde un nuevo SDK cuando el lector está inactivo. | La conexión existente del SDK al lector se interrumpe y el nuevo SDK se conecta al lector. El siguiente comando del SDK previamente conectado falla con un error del lector y se llama al método didDisconnect de esa aplicación. | La conexión existente del SDK al lector se interrumpe y el nuevo SDK se conecta al lector. El siguiente comando del SDK previamente conectado falla con un error del lector y se llama al método didDisconnect de esa aplicación. |
connectReader llamado desde un nuevo SDK cuando el lector está en medio de la transacción. | La conexión existente del SDK al lector se interrumpe y el nuevo SDK se conecta al lector. El siguiente comando del SDK previamente conectado falla con un error del lector y se llama al método didDisconnect de esa aplicación. | La conexión entrante falla con un error del lector. La conexión existente del SDK al lector no se interrumpe y el comando en curso continúa. |
Para obtener la experiencia de conexión menos disruptiva en entornos de múltiples lectores, recomendamos establecer failIfInUse
en true
en el intento de conexión inicial de la aplicación. Luego, permite que los usuarios vuelvan a intentar la conexión con failIfInUse
establecido en false
si la conexión falla la primera vez.
Con esta configuración, ninguno de tus usuarios podrá interrumpir una transacción de forma accidental al conectarse por error a un lector en uso, pero podrá seguir conectándose si es necesario.
Gestiona las desconexiones
Tu aplicación debe implementar la devolución de llamada reader(_
para gestionar la desconexión de un lector. Cuando implementes esta devolución de llamada, muestra una interfaz de usuario que avise a tu usuario del lector desconectado. Puedes llamar a discoverReaders
para buscar lectores e iniciar la reconexión.
La aplicación puede intentar volver a conectarse automáticamente al lector desconectado o mostrar una interfaz de usuario que solicite al usuario que se vuelva a conectar a un lector diferente.
El lector puede desconectarse de tu aplicación si pierde la conexión a la red. Para simular una desconexión inesperada, apaga el lector.
Reconexión automática
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 que el almacenamiento persistente tenga un número de serie guardado. Si encuentras 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.
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.