pagseguro_smart_flutter 1.1.3 copy "pagseguro_smart_flutter: ^1.1.3" to clipboard
pagseguro_smart_flutter: ^1.1.3 copied to clipboard

Integre o Flutter com maquinas smarts da Pagseguro, utilizando o SDK do Pagseguro. Rápido e fácil.

Pagseguro Smart Flutter

LojaExpressVarejista

Sobre   |   Tecnologias   |   Configuração   |   Autores   |  


🎯 Sobre #

Projeto destinado a facilitar a integração com o SDK da PagSeguro Smart no Flutter. Funciona somente com máquinas smarts

🚀 Tecnologias #

As seguintes ferramentas foram usadas na construção do projeto:

🏁 Configuração #

# Pubspec.yaml #

Para usar este plugin, adicione plugpag_flutter como dependência ao seu arquivo pubspec.yaml.

dependencies:
  pagseguro_smart_flutter: any

This will get you the latest version.

# Android Manifest #

Para integrar a biblioteca a biblioteca PlugPagService em aplicativos para Android é necessário adicionar a seguinte permissão ao AndroidManifest.xml.

<permission android:name="br.com.uol.pagseguro.permission.MANAGE_PAYMENTS"/>

# Intent-filter #

Para que seu aplicativo possa ser escolhido como aplicativo padrão de pagamento e receber Intents de inserção de cartão, é necessário adicionar o seguinte código em seu AndroidManifest.xml dentro da sua Activity principal.

<intent-filter>
 <action android:name="br.com.uol.pagseguro.PAYMENT"/>
 <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

# Build.gradle #

Em seu build.gradle a nivel do app, a propriedade minSdkVersion precisa ser level 23. Recurso este exigido pela versão 1.22.0 do plugpagservice da PagSeguro.

...
defaultConfig {
        applicationId "com.example.pagseguro_example"
        minSdkVersion 23
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }
...

# Implementação #

Para começar é necessário criar uma classe que implemente ´PaymentHandler´, sendo que essa é a responsável por monitorar e retornar os dados da pagseguro.

Criando classe PaymentController #

class PaymentController extends PaymentHandler {
  int saleValue = 0;
  bool enable = false;
  bool clickPayment = false;
  bool enableRefund = false;
  String? transactionCode;
  String? transactionId;
  String? response;

  void setSaleValue(double value) {
    if (value > 0.0) {
      saleValue = (value * 100).toInt();
      clickPayment = false;
      enable = true;
    } else {
      clickPayment = false;
      enable = false;
    }
  }

  @override
  void disposeDialog() {
    BotToast.cleanAll();
  }

  @override
  void onAbortedSuccessfully() {
    BotToast.showText(text: "Operação cancelada");
  }

  @override
  void onActivationDialog() {}

  @override
  void onAuthProgress(String message) {
    BotToast.showLoading();
  }

  @override
  void onError(String message) {
    BotToast.showText(text: message);
  }

  @override
  void onMessage(String message) {
    BotToast.showText(text: message);
  }

  @override
  void onFinishedResponse(String message) {
    BotToast.showText(text: message);
  }

  @override
  void onTransactionSuccess() {
    BotToast.showText(text: "Transacao com successo!");
  }

  @override
  void writeToFile({
    String? transactionCode,
    String? transactionId,
    String? response,
  }) {}

  @override
  void onLoading(bool show) {
    if (show) {
      BotToast.showLoading();
      return;
    }
    BotToast.closeAllLoading();
  }

  @override
  void onTransactionInfo({
    String? transactionCode,
    String? transactionId,
    String? response,
  }) {
    this.transactionCode = transactionCode;
    this.transactionId = transactionId;
    this.response = response;
    BotToast.showText(
        text:
            "{transactionCode: $transactionCode \n transactionId: $transactionId}");
    enableRefund = true;
  }
}

Métodos da ´PaymentHandler´

onAbortedSuccessfully

Acionado quando uma transação de abort é concluída com sucesso.

onAuthProgress

Acionado quando uma transação está em progresso.

onError

Acionado quando uma transação retorna um estado de ´Erro´, devolvendo como parâmetro uma ´String´ com a mensagem.

onMessage

Método responsável por devolver para o usuário uma mensagem retornada da PagSeguro.

onFinishedResponse

Método responsável por devolver uma response da transação.

onTransactionSuccess

Método acionado quando a transação foi concluída com sucesso.

onTransactionInfo

Método resposável por devolver uma response completa da transação, sendo possível mapear vários campos retornados.

Iniciar transação

Para iniciar a transação é necessário primeiro chamar a função de ativação do PinPad, passando como parâmetro o código de ativação daquele POS (código este informado na sua conta PagBank).

PagseguroSmart.instance().payment.activePinpad('12345');

Logo após ativação, o SDK da PagSeguro fornece algumas opções de transação como:

  • Crédito = PagseguroSmart.instance().payment.creditPayment(12.50)

  • Crédito Parcelado = PagseguroSmart.instance().payment.creditPaymentParc(controller.saleValue, 2)

  • Débito = PagseguroSmart.instance().payment.debitPayment(12.50)

  • PIX = PagseguroSmart.instance().payment.pixPayment.(12.50)

  • Voucher (alimentação) = PagseguroSmart.instance().payment.voucherPayment(12.50)

  • Estorno = PagseguroSmart.instance().payment.refund(transactionCode: controller.transactionCode, transactionId: controller.transactionId)

  • Abortar transação = PagseguroSmart.instance().payment.abortTransaction()

  • Última transação = PagseguroSmart.instance().payment.lastTransaction()

**Obs: Por padrão o SDK da PagSeguro SEMPRE imprime a via do estabelecimento. Após a impressão da via do estabelecimento, um popUp é exibido perguntando se deseja a via do consumidor.

📝 Autores #

Este projeto foi desenvolvido por:

Voltar para o topo

20
likes
0
pub points
77%
popularity

Publisher

verified publishergabul.dev

Integre o Flutter com maquinas smarts da Pagseguro, utilizando o SDK do Pagseguro. Rápido e fácil.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on pagseguro_smart_flutter