Flutter Pix Pagstar Package

This is a Flutter package created by the company Pagstar to facilitate the creation of Pix transactions. This package follows an MVC architecture with the repository pattern and uses the maximum of Flutter's native resources with a minimum amount of external packages to avoid excessive dependencies.

Prerequisites

Before you can use this package, you must first request access to the Pagstar sandbox environment to obtain the required credentials (authorizationToken and tenantId). You can do this by completing the registration at Pagstar Sandbox. After completing the registration, you'll receive the necessary credentials to initialize the package.

Installation

To install the package, add the following line to your project's pubspec.yaml:

dependencies:
   flutter_pix_pagstar: ^1.0.2

After that run flutter pub get to get the package.

Usage

Before using the package, it is necessary to initialize it with the init() function. This function takes two named parameters, authorizationToken and tenant, which are used for API requests.

FlutterPixPagstar.init(authorizationToken: 'your_authorization_token', tenant: 'your_tenant_id');

Change Theme

To customize the appearance of the package, you can use the setTheme() function, which takes a ThemeData.

FlutterPixPagstar.setTheme(ThemeData.dark());

Generate Transaction

To generate a transaction without returning a screen, you can use the generateTransaction() function. It receives a PixTransactionModel model (the name and document are optional to create a transaction, if you do not pass those arguments, an anonymous transaction will be created).

FlutterPixPagstar.generateTransaction(model: PixTransactionModel(
  value: 100,
  tenantId: 'your_tenant_id',
  name: 'your_name',
  document: 'your_document',
  expiration: 600,
));

Check Transaction

To check the status of a transaction, use the checkTransaction() function. This function takes a named parameter externalReference, which is the identifier of the transaction you want to check.

FlutterPixPagstar.checkTransaction(externalReference: 'external_reference');

Generate Transaction With Screen

If you need to generate a transaction and also present a screen, you can use the generateTransactionWithScreen() function. This function takes named parameters for customization, including title, subtitle, cancelButtonLabel, successMessage, and returnButtonLabel.

FlutterPixPagstar.generateTransactionWithScreen(
   context: context,
   model: PixTransactionModel(
     value: 100,
     tenantId: 'your_tenant_id',
     name: 'your_name',
     document: 'your_document',
     expiration: 600,
   ),
   title: 'Title',
   buttonLabel: 'Button Label',
   feedbackText: 'Feedback text',
   subtitle: 'Subtitle',
   cancelButtonLabel: 'Cancel Button Label',
   successMessage: 'Success Message',
   returnButtonLabel: 'Return Button Label',
);

Select Value Page

You can also open a page for the user to select the amount of a transaction. To do so, use the selectValuePage() function, which takes named parameters like headerText, transactionTitle, transactionButtonLabel, and feedbackText.

FlutterPixPagstar.selectValuePage(
   context: context,
   headerText: 'Header',
   buttonText: 'Transaction Button',
   subtitleText: 'Subtitle',
   transactionTitle: 'Transaction Title',
   transactionButtonLabel: 'Transaction Button Label',
   feedbackText: 'Feedback Text',
   cancelButtonLabel: 'Cancel Button Label',
   successMessage: 'Success Message',
   returnButtonLabel: 'Return Button Label',
);

Error handling

If an unexpected error occurs during a request or on the package page, a generic screen with the error message will be displayed.

Planned Changes

We are continuously working to improve the Flutter Pix Pagstar Package, and one of our primary goals for future updates is to achieve a higher level of decoupling in the design components. This change aims to allow developers greater flexibility in personalizing the package's appearance and behavior.

Support

If you encounter any issues or have any suggestions for improving this package, feel free to open an issue or pull request on GitHub.

We hope this package makes it easy to integrate Pix into your Flutter app!