These docs are for v1.0. Click to read the latest docs for v4.1.

Exemplos de implementação

Seguem abaixo alguns exemplos de camadas dos métodos do PlugPagService Wrapper para realizar transações.

As formas de fazer as chamadas e de tratar os valores retornados vão depender da implementação do seu aplicativo, porém é importante que sua aplicação controle ações de duplo clique para prevenir que o serviço seja chamado duas vezes.

Pagamento de R$250,00. Credito à 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 de R$300. Credito parcelado em 3 :

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 de R$150,00. Débito:

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 de R$50,00. Voucher:

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 de R$150,00, no débito utilizando pagamento via carnê:

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 de R$250,00, no crédito, à vista utilizando pagamento parcial:

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 ... } }

Estorno de um pagamento

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

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

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

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

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

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

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

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 “ x R$ ”.

Customizar dialog de impressão da via do cliente

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

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 valor igual
a 1. Do contrário, o método getResult() retornará -1.

Escrever no cartão 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 valor igual a 1. Do contrário, o método getResult() retornará -1.

Abortar operação de leitura/escrita no 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 do abort será retornado através da classe PlugPagNFCResult.

Se o abort for efetuada com sucesso, o método getResult() irá retornar valor igual a 1. Do
contrário, o método getResult() retornará -1.

Imprimir arquivo

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

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

Pré-Autorização

criar pré-autorização

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

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é-auto

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

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

NFC

DeteNFCCardDirectly

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

DetectRemoveCardDirectly

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

DetectJustAuthDirectly

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

OBS: A leitura do cartão NFC é sempre necessária. Após detectar o cartão, poderá enviar os
comandos APDU. Sempre deixar o cartão próximo ao leitor.

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

Pagamento de R$250,00, no QR CODE Crédito à vista:

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 de R$300, no QR Code Crédito, parcelado vendedor em 3 parcelas:

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 ... } }

Pagamento de R$300, no QR Code Crédito, parcelado comprador em 3 parcelas:

public void startPayment(Context context) { // Define os dados do pagamento PlugPagPaymentData paymentData = new PlugPagPaymentData( PlugPag.TYPE_QRCODE_CREDITO, 30000, PlugPag.INSTALLMENT_TYPE_PARC_COMPRADOR, 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 ... } }

© 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)