Configuração da CliSiTef para acesso a pinpads externos

Importante: esta Seção se aplica apenas ao cenário com smartphone/tablet conectado a um pinpad externo via USB ou Bluetooth. Ela não se aplica a terminais APOS que possuem pinpad interno e nem ao terminal Verifone Carbon 10, que possui um pinpad externo fixo com comunicação interna.

A partir da versão 4.0.0.10 da jCliSiTefI (Android), os seguintes pinpads externos são suportados 1 :

ModeloModo de acesso
PAX D200Bluetooth
PAX D180Bluetooth
PAX D150Bluetooth (low energy)
Ingenico iCMPBluetooth
Gertec MobiPinBluetooth
Gertec MP 5Bluetooth
Datecs BluepadBluetooth
Newland ME30SBluetooth
Gertec PPC-900 e PPC-910USB
Ingenico iPP-320 e iPP-350USB

Importante: a comunicação com pinpad ́s USB só é possível em dispositivos Android 3.1 “Honeycomb” (API level 12) ou superior.

Para garantir acesso aos recursos de Bluetooth e redes requeridos pela CliSiTef na sua aplicação, é necessário incluir algumas permissões no manifesto do aplicativo (arquivo AndroidManifest.xml):

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

Além disso, para que a CliSiTef possa utilizar os pinpads Bluetooth suportados, os mesmos devem ser pareados nas configurações do Android.

Cada pinpad possui uma forma de pareamento e obtenção do código. Estas instruções de configuração deverão ser obtidas com os fabricantes.


Importante: a comunicação com o pinpad será feita obrigatoriamente no modo “Comunicação Segura”. Isto é, o pinpad deve ter suporte a esta característica.

Para manter compatibilidade com versões anteriores, a CliSiTef adota a seguinte sequência de conexão:

  1. Tenta-se obter a lista de dispositivos USB conectados.
  2. Se reconhecer algum dos pinpads USB da lista acima, tenta-se fazer a conexão.
    • A lista de pinpad ́s USB está fixa internamente, pois cada dispositivo USB possui um Vendor ID e Product ID específicos, e que foram testados anteriormente pela Software Express.

  1. Se não obter um dispositivo válido, tenta obter um pinpad Bluetooth. Note que, neste caso, a interface Bluetooth será automaticamente ligada. Além disso, a aplicação deve possuir permissões no manifesto do projeto (veja a seção abaixo).

Para forçar a utilização da CliSiTef com exatamente um tipo de conexão com o pinpad (Bluetooth ou USB), indique nos parâmetros adicionais do método configuraIntSiTefInterativoEx() / configure() o parâmetro TipoPinPad, conforme a tabela abaixo:

Valor para TipoPinPadDescrição
ANDROID_AUTOTenta obter conexão de acordo com a heurística acima.
ANDROID_USBTenta obter conexão apenas com pinpad ́s USB.
ANDROID_BTTenta obter conexão apenas com pinpad ́s Bluetooth.

Exemplo:

CliSiTef = new CliSiTef (this.getApplicationContext ());
CliSiTef.configure ("10.100.100.108", "00000000", "SE000001",
"[TipoPinPad=ANDROID_BT;]");