Tarjeta Presente

SDKs Nativos

15min

El módulo permite la conexión automática de dispositivos Mobile POS con Smartphones Android e iOS, para realizar pagos con tarjeta presente.

A) Permisos de acceso:

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

B) Versión de SO:

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.

C) Bluetooth:

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.

D) GPS:

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.

Métodos y Eventos

Métodos

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



Eventos

Al interactuar con el dispositivo, las respuestas son devueltas a través de la emisión de eventos, los cuales pueden ser:

CONNECTION

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.

  • SEARCHING
  • FOUND
  • DISCONNECTED
  • ERROR

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

Valores Posibles de status en el evento CONNECTION

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.



CARD

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.

  • READING
  • READ

string

success

Resultado de la lectura.



boolean

message

Mensaje informativo sobre el evento emitido.



string

error

Tipo de error en caso de producirse.

  • NO_CARD
  • BAD_SWIPE
  • MAG_HEAD_FAIL

string

type

Tipo de lectura de tarjeta.

  • MAGSTRIPE
  • EMV

string

data

Los datos de la tarjeta en caso de una lectura exitosa.



string

Valores Posibles de status en el evento CARD

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.

Valores Posibles de error en el evento CARD

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.

Valores Posibles de type en el evento CARD

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.



INFO

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