Providers - Android

Esta página irá apresentar os principais métodos disponíveis para a integração dos terminais Minizinha, Moderninha PRO e WIFI com o sistema operacional Android, assim como alguns exemplos de aplicações. Esta apresentação está dividida em duas partes, sendo a primeira a respeito do terminal Minizinha e a segunda dos terminais Moderninha PRO e WIFI. Clique aquipara ser direcionado à seção dos terminais Moderninha PRO e WIFI.

Minizinha

Esta seção irá apresentar métodos e exemplos de aplicação destes métodos para o terminal PagBank Minizinha.

Métodos

Nesta tabela você encontra a lista completa de métodos, retornos e suas descrições para a integração com seu terminal.

MétodosRetornoDescrição
initBTConnectionIntConfigura a conexão bluetooth utilizando os dados de deviceInformation.
isAuthenticatedBooleanVerifica se há um usuário autenticado.
invalidateAuthenticationVoidInvalida uma autenticação. Equivalente a realizar um logout
requestAuthenticationVoidSolicita autenticação. Para realizar autenticação, uma Activity será aberta utilizando o método Activity.startActivityForResult(Intent, int).
setEventListenerVoidArmazena a referência de uma instância de interface que receberá os eventos gerados durante as transações. Os eventos são gerados apenas para transações feitas utilizando um leitor.
doPaymentPlugPagTransactionResultEfetua um pagamento.
voidPaymentPlugPagTransactionResultEfetua um estorno.
abortPlugPagAbortResultSolicita o cancelamento da operação atual. O cancelamento da transação não ocorre instantaneamente, pois depende das ações que estão sendo executadas.
getVersionLibStringRetorna a versão da biblioteca PlugPag.
setVersionNameIntDefine o nome e a versão do aplicativo que está integrando com o PlugPag.

📘

Documentação

Para mais detalhes sobre os métodos disponíveis você pode baixar a documentação completa.

Exemplos da aplicação

A seguir você encontra exemplos da aplicação dos métodos apresentados anteriormente.

Efetuando uma solicitação de pagamento

Para efetuar uma chamada para o seu terminal, você deve utilizar o método doPayment. Veja abaixo alguns exemplos de uma solicitação de venda.

public void startPayment(Context context) {
  // Define o terminal ou leitor que será utilizado para transação
  String deviceIdentification = "Nome ou MAC address do leitor/pinpad";
  PlugPagDevice device = new PlugPagDevice(deviceIdentification);

  // Define os dados do pagamento
  PlugPagPaymentData paymentData =
          new PlugPagPaymentData(
                  PlugPag.TYPE_CREDITO,
                  25000,
                  PlugPag.INSTALLMENT_TYPE_A_VISTA,
                  1,
                  "CODVENDA");

  // Cria a identificação do aplicativo
  PlugPagAppIdentification appIdentification =
          new PlugPagAppIdentification("MeuApp", "1.0.0");

  // Cria a referência do PlugPag
  PlugPag plugpag = new PlugPag(context, appIdentification);

  // Prepara conexão bluetooth e faz o pagamento
  int initResult = plugpag.initBTConnection(device);

  if (initResult == PlugPag.RET_OK) {
      PlugPagTransactionResult result = plugpag.doPayment(paymentData);

      // Trata o resultado da transação
      ...
  }
}
public void startPayment(Context context) {
  // Define o terminal ou leitor que será utilizado para transação
  String deviceIdentification = "Nome ou MAC address do leitor/pinpad";
  PlugPagDevice device = new PlugPagDevice(deviceIdentification);

  // Define os dados do pagamento
  PlugPagPaymentData paymentData =
          new PlugPagPaymentData(
                  PlugPag.TYPE_CREDITO,
                  30000,
                  PlugPag.INSTALLMENT_TYPE_PARC_VENDEDOR,
                  3,
                  "CODVENDA");

  // Cria a identificação do aplicativo
  PlugPagAppIdentification appIdentification =
          new PlugPagAppIdentification("MeuApp", "1.0.0");

  // Cria a referência do PlugPag
  PlugPag plugpag = new PlugPag(context, appIdentification);

  // Prepara conexão bluetooth e faz o pagamento
  int initResult = plugpag.initBTConnection(device);

  if (initResult == PlugPag.RET_OK) {
      PlugPagTransactionResult result = plugpag.doPayment(paymentData);

      // Trata o resultado da transação
      ...
  }
}

Estornando uma transação

O exemplo abaixo demonstra como iniciar uma transação de estorno no terminal.

public void voidPayment(Context context) {
    // Define o terminal ou leitor que será utilizado para transação
    String deviceIdentification = "Nome ou MAC address do leitor/pinpad";
    PlugPagDevice device = new PlugPagDevice(deviceIdentification);

    // Define os dados do estorno
    PlugPagVoidData voidData =
            new PlugPagVoidData
                    .Builder()
                    .setTransactionCode("transactionCode")
                    .setTransactionId("transactionId")
                    .build();

    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.0");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

    // Prepara conexão bluetooth e faz o pagamento
    int initResult = plugpag.initBTConnection(device);

    if (initResult == PlugPag.RET_OK) {
        PlugPagTransactionResult result = plugpag.voidPayment(voidData);

        // Trata o resultado do estorno
        ...
    }
}

Solicitar autenticação

O exemplo abaixo demonstra como solicitar uma autenticação no terminal.

public void showAuthenticationActivity(Activity activity) {
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.0");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(activity, appIdentification);

    // Solicita autenticação
    plugpag.requestAuthentication(activity);
    ...
}

Moderninha PRO e WIFI

Esta seção irá apresentar métodos e exemplos de aplicação destes métodos para os terminais PagBank Moderninha PRO e WIFI.

Métodos

Nesta tabela você encontra a lista completa de métodos, retornos e suas descrições para a integração com seu terminal.

MétodoRetornoDescrição
GetVersionLibStringRetorna uma string null terminated com a versão da biblioteca de integração.
SetVersionNameIntSeta 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.
InitBTConnectionNenhumInicializa a comunicação bluetooth utilizando o dispositivo padrão do aparelho Android.
SimplePaymentTransactionIntInicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.
CancelTransactionIntInicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura
GetLastApprovedTransactionStatusIntVerifica qual foi a última transação com sucesso feita pelo terminal.
getRawBufferByte[]Retorna o buffer recebido como resultado da última comunicação via bluetooth.
getMessageNenhumRetorna a mensagem resultante da transação (ISO-8859-1/Latin-1).
getTransactionCodeStringRetorna o transaction code obtido pela última chamada de SimplePaymentTransaction ou GetLastApprovedTransaction.
getDateStringRetorna a data da transação da última chamada de SimplePayment ou GetLastApprovedTransaction no formato “yyyy-mm-dd”.
getTimeStringRetorna a hora da transação da última chamada de SimplePayment ou GetLastApprovedTransaction no formato “hh:mm:ss”
getHostNsuStringRetorna o NSU do host obtido pela última chamada de SimplePaymentTransaction, GetLastApprovedTransaction ou CancelTransaction.
getCardBrandStringRetorna a bandeira do cartão da transação da última chamada de SimplePayment ou GetLastApprovedTransaction.
getBinStringRetorna os 6 primeiros dígitos do cartão da última transação de sucesso.
getHolderStringRetorna os 4 últimos dígitos do cartão da última transação de sucesso.
getTerminalSerialNumberStringRetorna o número de série do terminal que realizou a última transação.

📘

Documentação

Para mais detalhes você pode baixar a documentação completa

Efetuando uma solicitação de pagamento

Para efetuar uma chamada para o terminal, 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

O exemplo abaixo demonstra como iniciar uma transação de estorno no terminal.

PlugPag plugPag = new PlugPag();

plugPag.InitBTConnection();

ret = plugPag.CancelTransaction();

Consultando a última transação

O exemplo abaixo demonstra como consultar a última transação aprovada no terminal.

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();

📘

Atenção

Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).