Exemplos de implementação

Nessa página você encontra exemplos da utilização dos métodos do PlugPagService Wrapper para realizar transações. As formas de realizar as chamadas e tratar os valores retornados irão depender da implementação do seu aplicativo. Abaixo você encontra a lista completa de exemplos disponibilizados.

  • Pagamento à vista no crédito
  • Pagamento parcelado no crédito
  • Pagamento no débito
  • Pagamento com voucher
  • Pagamento no débito com carnê
  • Pagamento parcial à vista no crédito
  • Pagamento à vista no crédito por QR Code
  • Pagamento parcelado em 3 prestações no crédito por QR Code
  • Estorno de um pagamento
  • Verificar autenticação
  • Invalidar autenticação
  • Solicitar ativação
  • Obter versão da biblioteca
  • Reimpressão da via do estabelecimento
  • Reimpressão da via do cliente
  • Calcular parcelas
  • Customizar dialog de impressão da via do cliente
  • Ler cartão NFC
  • Escrever no cartão NFC
  • Abortar operação de leitura/escrita no cartão NFC
  • Imprimir arquivo
  • Buscar última transação aprovada
  • Pré-autorização
  • Efetivar pré-autorização
  • Cancelar pré-autorização
  • Buscar pré-autorização
  • Detectar cartão NFC
  • Solicitar afastamento de cartão NFC
  • Autenticação de cartão NFC
  • Comandos APDU

📘

Clique duplo

É importante que sua aplicação controle ações de duplo clique para prevenir que o serviço seja chamado duas vezes.

Pagamento à vista no crédito

No exemplo abaixo é apresentado como utilizar a biblioteca PlugPag para realizar um pagamento de R$250,00 na forma de pagamento crédito à vista.

public void startPayment(Context context) { // 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.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Pagamento parcelado no crédito

Nesse exemplo apresentamos como utilizar a biblioteca PlugPag para realizar um pagamento de R$300,00 na forma de pagamento crédito, parcelado em 3 prestações.

public void startPayment(Context context) { // 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.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Pagamento no débito

No exemplo abaixo apresentamos como utilizar a biblioteca PlugPag para realizar um pagamento de R$150,00 utilizando débito como forma de pagamento.

public void startPayment(Context context) { // Define os dados do pagamento PlugPagPaymentData paymentData = new PlugPagPaymentData( PlugPag.TYPE_DEBITO, 15000, PlugPag.INSTALLMENT_TYPE_A_VISTA, 1, "CODVENDA"); // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Pagamento com voucher

Nesse exemplo, você encontra como utilizar a biblioteca PlugPag para realizar um pagamento de R$50,00 utilizando voucher como forma de pagamento.

public void startPayment(Context context) { // Define os dados do pagamento PlugPagPaymentData paymentData = new PlugPagPaymentData( PlugPag.TYPE_VOUCHER, 5000, PlugPag.INSTALLMENT_TYPE_A_VISTA, 1, "CODVENDA"); // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Pagamento no débito com carnê

No exemplo abaixo é apresentado como utilizar a biblioteca PlugPag para realizar um pagamento de R$150,00 utilizando débito com carnê como forma de pagamento.

public void startPayment(Context context) { // Define os dados do pagamento PlugPagPaymentData paymentData = new PlugPagPaymentData( PlugPag.TYPE_DEBITO, 15000, PlugPag.INSTALLMENT_TYPE_A_VISTA, 1, "CODVENDA", true, false, true //Define que o pagamento será via carnê ); // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Pagamento parcial à vista no crédito

Nesse exemplo apresentamos como utilizar a biblioteca PlugPag para realizar um pagamento de R$250,00 utilizando crédido para realizar o pagameto à vista.

public void startPayment(Context context) { // Define os dados do pagamento PlugPagPaymentData paymentData = new PlugPagPaymentData( PlugPag.TYPE_CREDITO, 25000, PlugPag.INSTALLMENT_TYPE_A_VISTA, 1, "CODVENDA", true, true //Define que o pagamento será do tipo parcial false ) ; // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Pagamento à vista no crédito por QR Code

Nesse exemplo a biblioteca PlugPag é utilizada para realizar um pagamento de R$250,00 utilizando crédito pago através de QR Code.

public void startPayment(Context context) { // Define os dados do pagamento PlugPagPaymentData paymentData = new PlugPagPaymentData( PlugPag.TYPE_QRCODE_CREDITO, 25000, PlugPag.INSTALLMENT_TYPE_A_VISTA, 1, "CODVENDA"); // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Pagamento parcelado em 3 prestações no crédito por QR Code

A taxa de parcelamento do PagBank só é cobrada quando a venda é feita no crédito parcelado. Ao utilizar o parcelamento vendedor ela é paga pelo comerciante e o valor é descontado diretamente do total da venda. Ao optar pelo Parcelamento Comprador nas maquininhas PagBank você deixa de pagar a Taxa de Parcelamento e repassa este valor ao cliente, também sem custo algum.

Observe o exemplo abaixo, onde é apresentado como utilizar a biblioteca PlugPag para realizar um pagamento de R$250,00 na forma de pagamento parcelado vendedor, em 3 prestações no crédito por QR Code.

public void startPayment(Context context) { // Define os dados do pagamento PlugPagPaymentData paymentData = new PlugPagPaymentData( PlugPag.TYPE_QRCODE_CREDITO, 30000, PlugPag.INSTALLMENT_TYPE_PARC_VENDEDOR, 3, "CODVENDA"); // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Estorno de um pagamento

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

public void voidPayment(Context context) { // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { PlugPagTransactionResult result = plugpag.voidPayment( "transactionCode", "transactionId"); // Trata o resultado do estorno ... } }

Verificar autenticação

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

public void checkAuthentication(Context context) { // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Verifica autenticação boolean authenticated = plugpag.isAuthenticated(); if (authenticated) { // Usuário autenticado ... } else { // Usúario não autenticado ... } }

Invalidar autenticação

O exemplo abaixo apresenta como invalidar uma autenticação no terminal.

public void logout(Context context) { // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Invalida a autenticação existente plugpag.invalidateAuthentication(); ... }

Solicitar ativação

O exemplo abaixo apresenta como solicitar uma ativação no terminal.

public void requestAuth(Activity activity) { // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugPag = new PlugPag(activity, appIdentification); // Cria objeto com informação do código de ativação PlugPagActivationData plugPagActivationData = new PlugPagActivationData("SeuCodigoDeAtivação”); // Solicita autenticação PlugPagInitializationResult result = plugPag.initializeAndActivatePinPad(plugPagActivationData); if(result.getResult() == PlugPag.RET_OK) { //Sucesso } else { //Erro } ... }

O resultado da autenticação será retornado através da classe PlugPagInitializationResult. Se a autenticação for efetuada com sucesso, o método etResult() irá retornar valor igual a PlugPag.RET_OK. Caso contrário, mais informações do erro podem ser encontradas nos métodos getErrorCode() e getErrorMessage().

Obter versão da biblioteca

O exemplo abaixo apresenta como garantir que você está utilizando a verão correta do terminal.

public void getLibVersion(Context context) { // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Obtém a versão da biblioteca String version = plugpag.getLibVersion(); }

Reimpressão da via do estabelecimento

O exemplo abaixo apresenta como realizar a reimpressão da via do estabelecimento do comprovante de uma transação.

public void reprintStablishmentReceipt() { // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Obtém a versão da biblioteca PlugPagPrintResutlt result = plugpag.reprintStablishmentReceipt(); }

Reimpressão da via do cliente

O exemplo abaixo apresenta como realizar a reimpressão da via do cliente do comprovante de uma transação.

public void reprintCustomerReceipt() { // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Obtém a versão da biblioteca PlugPagPrintResutlt result = plugpag.reprintCustomerReceipt(); }

Calcular parcelas

O exemplo abaixo apresenta como realizar o cálculo do valor das parcelas quando o cliente optar por parcelar a compra.

public void calculateInstallments() { // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Obtém a versão da biblioteca Array<String> installments = plugpag.calculateInstallments(saleValue); }

O resultado retornado será uma String contendo a quantidade de parcelas permitidas mais o valor de cada parcela, seguindo o padrão quantidadeDeParcelas x R$ valorDaParcela.

Customizar dialog de impressão da via do cliente

O exemplo abaixo apresenta como customizar a mensagem de diálogo ao realizar a impressão da via do cliente do comprovante de uma transação.

public void startPayment(Context context) { // Define os dados do pagamento PlugPagPaymentData paymentData = new PlugPagPaymentData( PlugPag.TYPE_DEBITO, 15000, PlugPag.INSTALLMENT_TYPE_A_VISTA, 1, "CODVENDA"); // Cria a identificação do aplicativo PlugPagAppIdentification appIdentification = new PlugPagAppIdentification("MeuApp", "1.0.7"); // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context, appIdentification); // Cria a customização da dialog de impressão da via do cliente PlugPagCustomPrinterLayout customDialog = new PlugPagCustomPrinterLayout(); customDialog.setTitle("Imprimir via do cliente?"); customDialog.setButtonBackgroundColor("#00ff33"); customDialog.setConfirmText("Yes"); customDialog.setCancelText("No"); // Ativa terminal e faz o pagamento int initResult = plugpag.initializeAndActivatePinpad(new PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO"))); if (initResult == PlugPag.RET_OK) { plugPag.setPlugPagCustomPrinterLayout(customDialog); PlugPagTransactionResult result = plugpag.doPayment(paymentData); // Trata o resultado da transação ... } }

Ler cartão NFC

O exemplo abaixo apresenta como realizar a leitura de cartões NFC (Near Field Communication), que são os cartões por aproximação.

public void readNFCCard() { // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context); PlugPagNearFieldCardData dataCard = new PlugPagNearFieldCardData(); dataCard.setStartSlot(1); dataCard.setEndSlot(1); // Lê um cartão NFC PlugPagNFCResult result = plugpag.readFromNFCCard(dataCard); }

O resultado da autenticação será retornado através da classe PlugPagNFCResult. Se a autenticação for efetuada com sucesso, o método getResult() irá retornar o valor 1. Do contrário, o método getResult() retornará -1.

Escrever no cartão NFC

O exemplo abaixo apresenta como realizar a escrita de cartões NFC.

public void writeToNFCCard() { // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context); String info = "teste_com16bytes"; byte[] infoBytes = info.getBytes(); PlugPagNearFieldCardData dataCard = new PlugPagNearFieldCardData(); dataCard.setStartSlot(1); dataCard.setEndSlot(2); dataCard.getSlots()[1].put(“data”, infoBytes); // Escreve em um cartão NFC int result = plugpag.writeToNFCCard(dataCard); }

O resultado da autenticação será retornado através da classe PlugPagNFCResult. Se a autenticação for efetuada com sucesso, o método getResult() irá retornar o valor 1. Do contrário, o método getResult() retornará -1.

Abortar operação de leitura/escrita no cartão NFC

O exemplo abaixo apresenta como realizar o cancelamento de uma operação de leitura ou escrita em um cartão NFC.

public void abortNFC() { // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context); // Escreve em um cartão NFC int result = plugpag.abort(); }

O resultado da operação será retornado através da classe PlugPagNFCResult. Se o cancelamento for efetuado com sucesso, o método getResult() irá retornar o valor 1. Do contrário, o método getResult() retornará -1.

Imprimir arquivo

O exemplo abaixo demonstra como executar uma solicitação de impressão através do caminho de um arquivo local.

public void printFile() { // Cria a referência do PlugPag PlugPag plugPag = new PlugPag(context); // Cria objeto com informações da impressão PlugPagPrinterData data = new PlugPagPrinterData( Environment.getExternalStorageDirectory().getAbsolutePath() + /SeuDiretorio/SeuArquivo”, 4, 10 * 12)); PlugPagPrinterListener listener = new PlugPagPrinterListener() { @Override public void onError(@NotNull PlugPagPrintResult plugPagPrintResult) { plugPagPrintResult.getMessage(); // Mensagem de erro plugPagPrintResult.getErrorCode(); // Código de erro } }; //Seta listener de impressão plugPag.setPrinterListener(listener) // Imprime arquivo PlugPagPrintResult result = plugPag.printFromFile(plugPagPrinterData) if (result == PlugPag.RET_OK) { //sucesso } }

Buscar última transação aprovada

O exemplo abaixo demonstra comorealizar a busca da última transação aprovada.

public void getLastApprovedTransaction(Context context) { // Cria a referência do PlugPag PlugPag plugpag = new PlugPag(context); PlugPagTransactionResult lastApprovedTransaction = plugpag.getLastApprovedTransaction(); }

Pré-autorização

O processo de pré-autorização é realizado quando se mantém o saldo da transação reservado por um período antes da captura do valor, como uma forma de garantia ou segurança. Para realizar esta operação, siga o exemplo abaixo.

public Observable<PlugPagTransactionResult> doPreAutoCreate(int value, int installmentType, int installments) { return Observable.create(emitter -> { PlugPagPreAutoData plugPagPreAutoData = new PlugPagPreAutoData( value, installmentType, installments, true "userref” ); PlugPagTransactionResult plugPagTransactionResult = mPlugPag.doPreAutoCreate(plugPagPreAutoData); // Trata o retorno do PlugPagTransactionResult }); }

Efetivar pré-autorização

O exemplo abaixo demonstra como efetivar a captura do valor de uma pré-autorização.

public Observable<PlugPagTransactionResult> doPreAutoEffectuate( int value, String transactionId, String transactionCode ) { return Observable.create(emitter -> { PlugPagEffectuatePreAutoData plugPagEffectuatePreAutoData = new PlugPagEffectuatePreAutoData( value, true, transactionId, transactionCode, "userref” ); PlugPagTransactionResult plugPagTransactionResult = mPlugPag.doEffectuatePreAuto(plugPagEffectuatePreAutoData); // Trata o retorno do PlugPagTransactionResult }); }

Cancelar pré-autorização

O exemplo abaixo demonstra como cancelar um pagamento pré-autorizado.

public Observable<PlugPagTransactionResult> doPreAutoCancel(String transactionId, String transactionCode) { return Observable.create(emitter -> { PlugPagTransactionResult plugPagTransactionResult = mPlugPag.doPreAutoCancel(transactionId, transactionCode); // Trata o retorno do PlugPagTransactionResult }); }

Buscar pré-autorização

O exemplo abaixo demonstra como buscar uma pré-autorização já criada.

public Observable<PlugPagTransactionResult> getPreAutoData() { return Observable.create(emitter -> { PlugPagTransactionResult plugPagTransactionResult = mPlugPag.getPreAutoData(); // Trata o retorno do PlugPagTransactionResult }); }

Detectar cartão NFC

O exemplo abaixo demonstra como executar uma solicitação de detecção direta de informações de um cartão NFC.

public Observable<PlugPagNFCInfosResultDirectly> detectCardDirectly() { return Observable.create(emitter -> { try { // Starta a antena NFC int resultStartNfc = mPlugPag.startNFCCardDirectly(); // Realiza a autenticação NFC PlugPagNFCInfosResultDirectly plugPagNFCInfosResult = mPlugPag.detectNfcCardDirectly(PlugPagNearFieldCardData.ONLY_M, 20); if (plugPagNFCInfosResult.getResult() != RET_OK) { emitter.onError(new PlugPagException("Cartão não identificado")); emitter.onComplete(); return; } emitter.onNext(plugPagNFCInfosResult); // Stopa a antena NFC mPlugPag.stopNFCCardDirectly(); } catch (Exception e) { e.printStackTrace(); emitter.onError(e); } emitter.onComplete(); }); }

Solicitar afastamento de cartão NFC

O exemplo abaixo demonstra como executar uma solicitação de detecção de afastamento de um cartão NFC.

public Observable<Integer> detectRemoveCardDirectly() { return Observable.create(emitter -> { try { // Starta a antena NFC int resultStartNfc = mPlugPag.startNFCCardDirectly(); PlugPagNFCInfosResultDirectly plugPagNFCInfosResult = mPlugPag.detectNfcCardDirectly(PlugPagNearFieldCardData.ONLY_M, 20); if (plugPagNFCInfosResult.getResult() != RET_OK) { emitter.onError(new PlugPagException("Cartão não identificado")); emitter.onComplete(); return; } emitter.onNext(RET_WAITING_REMOVE_CARD); Thread.sleep(5000); int result = 0; if (plugPagNFCInfosResult.getCid() != null) { final PlugPagNFCDetectRemoveCard plugPagNFCDetectRemoveCard = new PlugPagNFCDetectRemoveCard(PlugPagNearFieldRemoveCardData.REMOVE, plugPagNFCInfosResult.getCid()); result = mPlugPag.detectNfcRemoveDirectly(plugPagNFCDetectRemoveCard); if (result != RET_OK) { emitter.onError(new PlugPagException("Cartão não removido")); emitter.onComplete(); return; } } emitter.onNext(result); //Starta a antena NFC mPlugPag.stopNFCCardDirectly(); } catch (Exception e) { e.printStackTrace(); emitter.onError(e); } emitter.onComplete(); }); }

Autenticação de cartão NFC

O exemplo abaixo demonstra como executar uma solicitação de autenticação do cartão NFC diretamente pelo terminal.

public Observable<Integer> detectJustAuthDirectly() { // chave de autenticacao de um cartao NFC virgem byte[] key = { (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF }; return Observable.create(emitter -> { try { // Starta a antena NFC int resultStartNfc = mPlugPag.startNFCCardDirectly(); PlugPagNFCInfosResultDirectly plugPagNFCInfosResult = mPlugPag.detectNfcCardDirectly(PlugPagNearFieldCardData.ONLY_M, 20); if (plugPagNFCInfosResult.getResult() != RET_OK) { emitter.onError(new PlugPagException("Cartão não identificado")); emitter.onComplete(); return; } final PlugPagNFCAuthDirectly auth = new PlugPagNFCAuthDirectly((byte) 0, key, EM1KeyType.TYPE_B, plugPagNFCInfosResult.getSerialNumber()); int resultAuth = mPlugPag.justAuthNfcDirectly(auth); if (resultAuth != RET_OK) { emitter.onError(new PlugPagException(String.format("Erro ao autenticar bloco"))); emitter.onComplete(); return; } emitter.onNext(resultAuth); // Stopa a antena NFC mPlugPag.stopNFCCardDirectly(); } catch (Exception e) { e.printStackTrace(); emitter.onError(e); } emitter.onComplete(); }); }

Comandos APDU

Na SmartPOS, uma application protocol data unit (APDU), em português unidade de dados de protocolo de aplicativo, é a unidade de comunicação entre o SmartPOS e um cartão NFC.

A leitura do cartão NFC é sempre necessária. Após detectar o cartão, você poderá enviar os comandos APDU. Durante esse processo é necessário que o cliente mantenha o cartão próximo ao leitor. O Exemplo abaixo demontra os comandos necessários para executar esse processo.

public Observable<PlugPagCmdExchangeResult> cmdExchange() { return Observable.create(emitter -> { // Comando APDU byte[] command = new byte[]{ (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 }; try { PlugPagCmdExchangeResult resultAuth = mPlugPag.apduCommand(command, 256); if (resultAuth != null && resultAuth.getCmd() != null && resultAuth.getCmd().length > 0) { emitter.onNext(resultAuth); }else{ ; emitter.onError(new PlugPagException("Ocorreu um erro no comando APDU.")); } emitter.onComplete(); } catch (Exception e) { e.printStackTrace(); emitter.onError(e); } }); }

Did this page help you?

© 1996-2025 Todos os direitos reservados.

PAGSEGURO INTERNET INSTITUIÇÃO DE PAGAMENTO S/A - CNPJ/MF 08.561.701/0001-01

Av. Brigadeiro Faria Lima, 1.384, São Paulo - SP - CEP 01451-001

English
Powered by Localize
Português (Brasil)