PlugPag para Android

Nesta documentação você verá os seguintes itens:

Visão Geral
Pareando a sua Moderninha Pro
Importando a biblioteca
Efetuando uma Solicitação de Pagamento
Estornando uma Transação
Consultando a última transação
Listagem de erros

Visão Geral

Se você tem um aplicativo Android e quer fazer vendas a partir dele usando a sua Moderninha Pro, o PlugPag é a solução ideal. Com ele você consegue conectar o seu app à Moderninha Pro e realizar cobranças através do PagSeguro.

Versão

Antes de iniciar, entre no Menu e verifique a versão do firmware conforme as imagens abaixo:

Imagem 1

Caso sua Moderninha PRO não esteja na versão 3.11.x (ou superior), basta iniciar a atualização manual através da opção menu > configurações gerais > atualização.

Dúvidas? Acesse a comunidade de desenvolvedores.

Pareando a sua Moderninha Pro

É muito simples. Tudo o que você precisa fazer para começar é parear via Bluetooth o seu dispositivo Android e a Moderninha Pro. Estando os dois pareados, podemos começar a integração.

É importante destacar que a sua aplicação precisa identificar o MacAddress Bluetooth da Moderninha Pro com a qual se deseja comunicar, pois esta informação será utilizada durante o processo.

  • Para tornar o bluetooth da moderninha visível, basta apertar a tecla '0'.

Não é necessário qualquer forma de autenticação (login). A identificação de usuário é feita diretamente na Moderninha Pro.

Ainda não tem a sua Moderninha Pro? Adquira a sua agora em https://loja.pagseguro.uol.com.br/

Importando a biblioteca

Todas as chamadas que você verá nos próximos passos são efetuadas utilizando uma biblioteca exclusiva para android, que deverá ser importada em seu projeto.

Primeiramente é necessário configurar o repositório da biblioteca no arquivo build.gradle localizado na raiz do projeto. Nele adicione as linhas destacadas abaixo:

repositories {
       jcenter()
       maven {
            url 'https://github.com/pagseguromaster/plugpag/raw/master/android'
       }
}

Em seguida inclua a linha abaixo no arquivo build.gradle do módulo de seu projeto:

dependencies {
    ...
    compile 'br.uol.pagseguro.client:btserial:1.1.0'
    compile 'br.uol.pagseguro.client:plugpag:1.1.0'
    ...
}

Também é importante informar que esta biblioteca não necessita de nenhum tipo de autenticação com login e senha pois a Moderninha já está autenticada e vinculada a uma conta PagSeguro.

Dados

public class PlugPag {

   public static final int RET_OK;
   public static final int BUFF_SIZE;
   public static final int NULL_PTR;
   public static final int POS_NOT_READY;
   public static final int TRANS_DENIED;
   public static final int DATA_INV_RESULT_MESSAGE;
   public static final int INV_AMOUNT_PARAM;
   public static final int INV_TOT_AMOUNT_PARAM;
   public static final int INV_USER_REF_PARAM;
   public static final int INV_TRS_RESULT_PARAM;
   public static final int DRIVER_NOT_FOUND;
   public static final int DRIVER_FUNCTION_ERROR;
   public static final int JNI_EXIT_EXCEPTION;

   public static final int CREDIT = 1;
   public static final int DEBIT = 2;

   public static final int A_VISTA = 1;
   public static final int PARC_VENDEDOR = 2;
}

Métodos

Método Retorno Descrição
GetVersionLib String Retorna uma string null terminated com a versão da biblioteca de integração.
SetVersionName Int Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.
InitBTConnection Nenhum Inicializa a comunicação blutooth utilizando o dispositivo padrão do aparelho Android.
SimplePaymentTransaction Int Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.
CancelTransaction Int Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura
GetLastApprovedTransactionStatus Int Verifica qual foi a última transação com sucesso feita pelo terminal.
getRawBuffer Byte[] Retorna o buffer recebido como resultado da última comunicação via bluetooth.
getTransactionCode String Retorna o transaction code obtido pela última chamada de SimplePaymentTransaction ou GetLastApprovedTransaction.
getDate String Retorna a data da transação da última chamada de SimplePayment ou GetLastApprovedTransaction no formato “yyyy-mm-dd”.
getTime String Retorna a hora da transação da última chamada de SimplePayment ou GetLastApprovedTransaction no formato “hh:mm:ss”
getHostNsu String Retorna o NSU do host obtido pela última chamada de SimplePaymentTransaction, GetLastApprovedTransaction ou CancelTransaction.
getCardBrand String Retorna a bandeira do cartão da transação da última chamada de SimplePayment ou GetLastApprovedTransaction.
getBin String Retorna os 6 primeiros dígitos do cartão da última transação de sucesso.
getHolder String Retorna os 4 últimos dígitos do cartão da última transação de sucesso.
getTerminalSerialNumber String Retorna o número de série da Moderninha que realizou a última transação.

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha Pro, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

    int ret;

    //  Transação de 12,34
    String amount = "1234";

    //  A Vista, 1 Parcela
    int installmentType = PlugPag.A_VISTA;
    int installment = 1;


    //  Transação crédito
    int method = PlugPag.CREDIT;

    //  Meu código de venda é “CODIGVENDA”
    String codigoVenda = ”CODIGVENDA”;


    PlugPag plugPag = new PlugPag();
    plugPag.InitBTConnection();
    pugPag.SetVersionName("MyApp", "R001");


    ret = plugPag.SimplePaymentTransaction(
            method,
            installmentType,
            installment,
            amount,
            codigoVenda);

    String date = plugPag.getDate();
    String time = plugPag.getTime();
    String cardBrand = plugPag.getCardBrand();
    int ret;

    //  Transação de 1208,34
    String amount = "128034";

    //  7 Parcelas
    int installmentType = PlugPag.PARC_VENDEDOR;
    int installment = 7;


    //  Transação crédito
    int method = PlugPag.CREDIT;

    //  Meu código de venda é “CODIGVENDA”
    String codigoVenda = ”CODIGVENDA”;


    PlugPag plugPag = new PlugPag();
    plugPag.InitBTConnection();

    pugPag.SetVersionName("MyApp", "R001");

    ret = plugPag.SimplePaymentTransaction(
            method,
            installmentType,
            installment,
            amount,
            codigoVenda);

    String date = plugPag.getDate();
    String time = plugPag.getTime();
    String cardBrand = plugPag.getCardBrand();

Estornando uma Transação

Para iniciar uma transação de estorno na Moderninha Pro, acompanhe o exemplo a seguir:

PlugPag plugPag = new PlugPag();

plugPag.InitBTConnection();

ret = plugPag.CancelTransaction();

Consultando a última transação

Para consultar a última transação na Moderninha Pro, acompanhe o exemplo a seguir:

PlugPag plugPag = new PlugPag();

plugPag.InitBTConnection();

ret = plugPag.GetLastApprovedTransactionStatus ();

String date = plugPag.getDate();
String time = plugPag.getTime();
String cardBrand = plugPag.getCardBrand();
String hostNsu = plugPag.getHostNsu();

Listagem de erros

Todas a funções da API seguem os mesmos tipos de código retorno, conforme a tabela a seguir:

Valor Descrição Ação
0 Transação autorizada
-1001 Mensagem gerada maior que buffer dimensionado Coletar log (se existir) e enviar para o suporte.
-1002 Parâmetro de aplicação inválido Coletar log (se existir) e enviar para o suporte.
-1003 Terminal não está pronto para transacionar Tente novamente.
-1004 Transação negada pelo Host. Verificar mensagem no terminal.
-1005 Buffer de resposta da transação inválido ao obter as informações de resultado da transação Refaça a transação.
-1006 Parâmetro de valor da transação não pode ser nulo Verificar implementação da chamada da biblioteca.
-1007 Parâmetro de valor total da transação não pode ser nulo Verificar implementação da chamada da biblioteca.
-1008 Parâmetro de código de venda não pode ser nulo Verificar implementação da chamada da biblioteca.
-1009 Parâmetro de resultado da transação não pode ser nulo Verificar implementação da chamada da biblioteca.
-1010 Driver de conexão não encontrado Verificar se todos os arquivos estão no diretório correto.
-1011 Erro ao utilizar driver não encontrado Reinstalar os arquivos do driver de conexão
-1012 Formato do valor da venda invalido Valor deve ser um número inteiro sem virgula
-1013 Comprimento do REF superior a 10 dígitos Truncar REF para no máximo 10 dígitos
-1014 Buffer de recepção corrompido Refaça a transação
-1015 Nome da aplicação maior que 25 caracteres Limitar nome da aplicação a 25 caracteres
-1016 Versão da aplicação maior que 10 caracteres Limitar versão da aplicação em 10 caracteres
-1017 Necessário definir nome da aplicação Definir nome e versão da aplicação com SetVersionName()
-1018 Não existe dados da última transação Refaça a transação
-1019 Erro de comunicação com terminal (resposta inesperada) Realizar consulta de última transação
-2001 Porta COM informada não encontrada Informar uma porta COM válida.
-2002 Não foi possível obter configurações da porta COM informada Informar uma porta COM válida.
-2003 Não foi possível configurar a porta COM informada Informar uma porta COM válida.
-2004 Timeout de comunicação Bluetooth Refaça a transação.
-2005 Não foi possível enviar dados pela porta COM informada Informar uma porta COM válida.
-2022 Java – Adaptador Null Verificar implementação
-2023 Java – erro em DeviceToUse Coletar log (se existir) e enviar para o suporte.
-2024 Java – erro no serviço RfcommSocket Coletar log (se existir) e enviar para o suporte.
-2026 Java – Close exception Coletar log (se existir) e enviar para o suporte.
-2027 Java – Não foi possível estabelecer conexão Bluetooth Tente novamente.
-2028 Java – Não foi possível abrir socket ou stream Tente novamente.
-2029 Java – Socket null Coletar log (se existir) e enviar para o suporte.
-2030 Java – Exception no buffer de saída Coletar log (se existir) e enviar para o suporte.
-2031 Java – Exception no buffer de entrada Coletar log (se existir) e enviar para o suporte.
-2032 Java – Exception ao fechar socket Coletar log (se existir) e enviar para o suporte.
-2033 Java – Read timeout Tente novamente
-2036 Java – Exception ao enviar buffer Coletar log (se existir) e enviar para o suporte.
-2037 Java – Exception ao limpar buffer de envio Coletar log (se existir) e enviar para o suporte.
-2038 Java – Exception buffer de envio nulo Coletar log (se existir) e enviar para o suporte.
-3000 Java – Erro na camada de integração com a biblioteca Coletar log (se existir) e enviar para o suporte.

Ainda não tem a sua Moderninha Pro? Adquira a sua agora em https://loja.pagseguro.uol.com.br/