SDKs Nativos
El módulo permite la conexión automática de dispositivos Mobile POS con Smartphones Android e iOS, para realizar pagos con tarjeta presente.
Es necesario solicitar los siguientes permisos en el Smartphone de manera previa:
- Dispositivos Android:
- Por un lado, será necesario agregar los siguientes permisos en AndroidManifest.xml:
- BLUETOOTH
- BLUETOOTH_ADMIN
- ACCESS_COARSE_LOCATION
- ACCESS_FINE_LOCATION
- INTERNET
- Y será necesario solicitar al usuario permisos de:
- ACCESS_COARSE_LOCATION
- ACCESS_FINE_LOCATION
- Dispositivos IOS:
- Por un lado, será necesario agregar los siguientes permisos y descripciones en Info.plist:
- NSBluetoothAlwaysUsageDescription
- NSBluetoothPeripheralUsageDescription
- NSLocationAlwaysAndWhenInUseUsageDescription
- NSLocationAlwaysUsageDescription
- NSLocationWhenInUseUsageDescription
- NSMicrophoneUsageDescription
- Y será necesario solicitar al usuario permisos de:
- LOCATION_ALWAYS
- LOCATION_WHEN_IN_USE
Es necesario contar la siguiente versión de SO dependiendo de la plataforma:
- Dispositivos Android: Versión 6 o Superior.
- Dispositivos IOS: Versión iOS 10 o Superior.
El bluetooth en el caso de Smartphones Android, si no lo estaba, se encenderá automáticamente con la ejecución del método init().
Por el contrario, el Smartphones iOS, deberá encederse manualmente por el usuario.
En el caso de Smartphones con Android versión 10 o superior, es necesario que el GPS esté encendido. Esta acción deberá hacerse manualmente por el usuario.
La siguiente tabla indica los distintos métodos que el módulo de lectura de tarjetas con Mobile POS posee:
Métodos | Descripción | Retorna |
start() | Inicializa la búsqueda de dispositivos Mobile POS por Bluetooth, y si encuentra uno, se conecta automáticamente. Si encuentra más de uno, se conecta con el primero de ellos (por ahora). Emite un evento de tipo CONNECTION con un status inicial de SEARCHING. En el caso de ejecutar este método y el dispositivo se encuentra ya conectado con algún lector, ejecutará un evento de tipo CONNECTION con status FOUND. | void |
isConnected() | Método asíncrono, que devuelve si se encuentra un dispositivo conectado o no. | boolean |
read() | Inicializa la lectura de la tarjeta. Emite un evento de tipo CARD con un status inicial de READING. | void |
disconnect() | Desconecta automáticamente el dispositivo Mobile POS y realiza la liberación de la instancia del controlador existente. | void |
getDeviceInfo() | Info del lector conectado. Te suscribis a un Listener y te devulve estos datos: connected(boolean), battery(number), charging(boolean), serialNumber(string)void | |
Al interactuar con el dispositivo, las respuestas son devueltas a través de la emisión de eventos, los cuales pueden ser:
El evento CONNECTION se utiliza para indicar los cambios en el estado de la conexión con el dispositivo Mobile POS, ya sea que se haya comenzado la búsqueda del dispositivo, se realizó la conexión, se desconectó o se produjo un error. Este evento retorna un objeto event que tiene las siguientes propiedades:
Nombre | Descripción | Valores Posibles | Tipo |
status | Indica el estado actual de la conexión entre Mobile POS y el Smartphone. |
| string |
success | Indica el resultado de la búsqueda e intento de conexión en caso de encontrar un dispositivo. | | boolean |
message | Mensaje informativo sobre el evento emitido. | | string |
Valor | Descripción |
SEARCHING | Indica que se encuentra en la búsqueda de un dispositivo Mobile POS. |
FOUND | Indica que finalizó la búsqueda y/o conexión con el dispositivo, ya sea que haya finalizado con éxito o no. Esto último se indica en la propiedad success del objeto event. |
DISCONNECTED | Indica que el dispositivo se desconectó. |
ERROR | Indica que se produjo un error al procesar alguna solicitud, como por ejemplo, querer obtener la información del dispositivo mientras el mismo está ocupado. |
El evento CARD se utiliza para indicar cuando el dispositivo está listo para leer la tarjeta o para cuando ha finalizado de leerla, ya sea que la lectura haya sido exitosa o errónea. Este evento retorna un objeto eventque tiene las siguientes propiedades:
Nombre | Descripción | Valores Posibles | Tipo |
status | Indica el estado actual de la lectura de tarjeta. |
| string |
success | Resultado de la lectura. | | boolean |
message | Mensaje informativo sobre el evento emitido. | | string |
error | Tipo de error en caso de producirse. |
| string |
type | Tipo de lectura de tarjeta. |
| string |
data | Los datos de la tarjeta en caso de una lectura exitosa. | | string |
Valor | Descripción |
READING | Indica que el dispositivo está listo y a la espera para realizar la lectura de la tarjeta. |
READ | Indica que la lectura de la tarjeta ha finalizado, ya sea porque se leyó o porque se agotó el tiempo de espera. Esto último se indica en la propiedad success del objeto event. |
Valor | Descripción |
NO_CARD | El tiempo de lectura se agotó y no se detectó ninguna tarjeta. |
BAD_SWIPE | Hubo un error al deslizar la tarjeta y no se pudo leer correctamente. |
MAG_HEAD_FAIL | Se produjo un error al leer la banda magnética de la tarjeta. |
Valor | Descripción |
MAGSTRIPE | Indica que el tipo de lectura fue por banda magnética. |
EMV | Indica que el tipo de lectura fue por chip. |
El evento INFO se utiliza para retornar información del dispositivo. Este evento retorna un objeto event que tiene las siguientes propiedades:
Nombre | Descripción | Tipo |
message | Mensaje informativo sobre el evento emitido. | string |
data | Objeto que contiene la información obtenida del dispositivo. | object |
El objeto data del evento INFO contiene las siguientes propiedades:
Nombre | Descripción | Tipo |
battery | Indica el porcentaje de batería actual del dispositivo. | int |
serialNumber | Número de serie del dispositivo. | string |
charging | Indica si el dispositivo se encuentra cargando o no. | boolean |