Flutter iFood Pago
Plugin não oficial para Integração com iFood Pagamentos
Sobre
O Flutter iFood Pago é um plugin Flutter desenvolvido para integrar funcionalidades de pagamento do iFood em aplicativos Flutter. O plugin permite processar transações via crédito, débito, voucher e PIX, além de oferecer suporte para estorno de transações e impressão de comprovantes em dispositivos POS.
Funcionalidades Principais
- Processamento de pagamentos (crédito, débito, voucher, PIX)
- Estorno de transações
- Impressão de comprovantes
- Suporte a diferentes tipos de layout de impressão (texto, linha, imagem)
- Preview de impressão em base64
Tecnologias Utilizadas
- Flutter
- Dart
- HTTP para requisições
- Platform Channels para comunicação nativa
- Shared Preferences para armazenamento local
Instalação
Adicione ao seu pubspec.yaml:
dependencies:
flutter_ifood_pago: ^latest_version
Como Utilizar
Inicialização
import 'package:flutter_ifood_pago/flutter_ifood_pago.dart';
final flutterIfoodPagoPlugin = FlutterIfoodPago();
Processamento de Pagamento
try {
final payment = IfoodPagoPaymentPayload(
paymentMethod: IfoodPagoTransactionType.CREDIT,
value: 1000, // R$ 10,00 em centavos
transactionId: "123456",
tableId: "789",
printReceipt: true
);
final response = await flutterIfoodPagoPlugin.pay(payload: payment);
// Trata resposta
} on IfoodPagoPaymentException catch (e) {
// Trata erro de pagamento
}
Estorno de Transação
try {
final refund = IfoodPagoRefundPayload(
transactionIdAdyen: "ID_TRANSACAO",
printReceipt: true
);
final response = await flutterIfoodPagoPlugin.refund(payload: refund);
// Trata resposta
} on IfoodPagoRefundException catch (e) {
// Trata erro de estorno
}
Impressão de Comprovante
try {
final printPayload = IfoodPagoPrintPayload(
integrationApp: "NomeApp",
printableContent: [
IfoodPagoContentprint(
type: IfoodPagoPrintType.text,
content: "Texto exemplo",
align: IfoodPagoPrintAlign.center,
size: IfoodPagoPrintSize.medium
)
]
);
final response = await flutterIfoodPagoPlugin.printData(payload: printPayload);
// Trata resposta
} on IfoodPagoPrintException catch (e) {
// Trata erro de impressão
}
Classes Principais
IfoodPagoPaymentPayload
Responsável por estruturar dados de pagamento:
paymentMethod: Tipo de transaçãovalue: Valor em centavostransactionId: Identificador únicotableId: Identificador da mesaprintReceipt: Flag para impressão
IfoodPagoRefundPayload
Estrutura dados de estorno:
transactionIdAdyen: ID da transação originalprintReceipt: Flag para impressão
IfoodPagoPrintPayload
Configura impressão:
integrationApp: Nome da integradora. Deve ser informado sem espaços, utilizando por exemplo underline: Nome_Integradora.printableContent: Lista de conteúdos para impressãogroupAll: Valor booleano que indica se toda a lista deve ser agrupada em uma única imagem.
Tipos de Impressão
IfoodPagoPrintType
text: Impressão de textoline: Impressão de linhaimage: Impressão de imagem
IfoodPagoPrintAlign
center: Centralizadoright: Direitaleft: Esquerda
IfoodPagoPrintSize
big: Grandemedium: Médiosmall: Pequeno
Tratamento de Erros
O plugin possui três tipos principais de exceções:
IfoodPagoPaymentException: Erros relacionados a pagamentos
IfoodPagoRefundException: Erros relacionados a estornos
IfoodPagoPrintException: Erros relacionados a impressão
:memo: Autores
Este projeto foi desenvolvido por:
Luiz Carlos de Lima
Licença
Este projeto está sob a licença MIT.
Libraries
- constants/ifood_pago_keys_storage
- constants/ifood_pago_print_content_types
- constants/ifood_pago_status_deeplink
- constants/ifood_pago_transaction_type
- exceptions/ifood_pago_payment_exception
- exceptions/ifood_pago_print_exception
- exceptions/ifood_pago_refund_exception
- flutter_ifood_pago
- flutter_ifood_pago_method_channel
- flutter_ifood_pago_platform_interface
- models/ifood_pago_auth_response
- models/ifood_pago_content_print
- models/ifood_pago_payment_payload
- models/ifood_pago_payment_response
- models/ifood_pago_print_payload
- models/ifood_pago_refund_payload
- models/ifood_pago_refund_response
- services/ifood_pago_printer_service