pagaleve_flutter 1.0.5 
pagaleve_flutter: ^1.0.5 copied to clipboard
Flutter Pagaleve SDK.
Pagaleve Flutter #
Visão Geral #
O SDK Pagaleve para Flutter oferece uma maneira fácil de integrar o processo de checkout do Pagaleve em seu aplicativo Flutter.
 
Instalação #
Você pode instalar o SDK da Pagaleve de duas maneiras diferentes
Método 1: Adicionando ao pubspec.yaml #
Adicione a dependência diretamente ao seu arquivo pubspec.yaml:
dependencies:
  flutter:
    sdk: flutter
  pagaleve_flutter: ^1.0
Depois, execute o comando:
flutter pub get
Método 2: Usando o comando flutter pub add #
Você também pode adicionar o SDK usando o comando flutter pub add no terminal:
flutter pub add pagaleve_flutter
O flutter pub add irá atualizar automaticamente o seu arquivo pubspec.yaml e executar flutter pub get para você.
Inicialização do Checkout #
O método checkout inicia o processo de checkout e retorna uma página de OTP.
Os parâmetros que serão passados no checkout, são os mesmos que estão na documentação: Criar checkout
Método checkout #
Parâmetros
- 
context: Objeto que representa a localização de um widget na árvore de widgets do Flutter. Ele é usado para obter informações sobre a árvore de widgets e manipular a navegação e a renderização dos widgets. (Veja mais) - 
data: Instância deCheckoutDataque possui os dados necessários para o processo de checkout, os quais incluem informações do pedido, do comprador, dados de envio, entre outros. Esses dados são passados para a API de checkout da Pagaleve para completar a transação. Exemplo: 
final CheckoutData checkoutData = CheckoutData(
  metadata: {},
  order: Order(
    amount: 20000,
    description: "description",
    items: [
      Item(
        image: "http://pagaleve.com.br",
        name: "Blusa Verde Lily",
        price: 12000,
        quantity: 1,
        reference: "reference",
        sku: "sku",
        url: "http://pagaleve.com.br",
      ),
      Item(
        image: "http://pagaleve.com.br",
        name: "Sapato Feminino Couro Preto",
        price: 6000,
        quantity: 1,
        reference: "reference",
        sku: "sku",
        url: "http://pagaleve.com.br",
      ),
      Item(
        image: "http://pagaleve.com.br",
        name: "Cinto Faixa Fivela Plástico Gloss Promoção Inverno",
        price: 2000,
        quantity: 1,
        reference: "reference",
        sku: "sku",
        url: "http://pagaleve.com.br",
      ),
    ],
    metadata: {},
    reference: "PL20240625021025",
    shipping: Shipping(
      address: Address(
        city: "São Paulo",
        complement: "",
        name: "Office",
        neighborhood: "Vila Madalena",
        number: "590",
        phoneNumber: "11987654387",
        state: "SP",
        street: "Rua Harmonia",
        zipCode: "05435001",
      ),
      amount: 1000,
      pickup: false,
      tracking: Tracking(carrier: "carrier", code: "code", url: "url"),
    ),
    tax: 20,
  ),
  shopper: Shopper(
    billingAddress: Address(
      city: "City",
      complement: "",
      name: "Jane Doe",
      neighborhood: "Neighborhood",
      number: "123",
      phoneNumber: "11987654321",
      state: "XX",
      street: "Street",
      zipCode: "12345678",
    ),
    birthDate: "2000-01-01T00:00:00.000Z",
    cpf: "12345678901",
    email: "email@email.com",
    firstName: "John",
    lastName: "Doe",
    phone: "99123456789",
  )
);
onSuccess: Função chamada quando o checkout é concluído com sucesso. Retorna uma instância doCheckoutValues. Exemplo do retorno:
{
  'checkoutId': 'a1b9f49b-b3ee-48c1-b30d-14f64b80b5ce',
}
onError: Função chamada quando ocorre um erro durante o processo de checkout, retorna uma das seguintes exceptions.
| Exception | Motivo | 
|---|---|
CheckoutGenericException | 
Erro desconhecido. | 
CheckoutCancelledException | 
Checkout foi cancelado manualmente pelo usuário. | 
InvalidCustomerFieldsException | 
Campos do cliente (shopper) estão incompletos ou com erros. | 
Exemplo #
import 'package:pagaleve_flutter/pagaleve_flutter.dart';
void main() {
  runApp(const SdkExample());
}
class SdkExample extends StatefulWidget {
  const SdkExample({super.key});
  @override
  State<SdkExample> createState() => _SdkExampleState();
}
class _SdkExampleState extends State<SdkExample> {
  Pagaleve pagaleve = Pagaleve(
    apiKey: <API-KEY>, // Login
    apiSecret: <API-SECRET>, // Password
    environment: 'Stage', // Optional param. Default: 'Production'
  );
  @override
  Widget build(BuildContext context) {
    onSubmit(CheckoutData data) async {
      await pagaleve.checkout(
        context,
        data: data,
        onSuccess: (CheckoutValues values) {
          // Implemente sua função de sucesso aqui
        },
        onError: (Object error) {
          // Implemente sua função para lidar com erros aqui
        },
      );
    }
    return MaterialApp(
      home: Scaffold(
        body: Padding(
          padding: const EdgeInsets.all(16),
          child: TextButton(
            onPressed: onSubmit(data)
            child: const Text('Criar checkout'),
          )
        )
      )
    );
  }
}