Search packages, repositories and app categories

GitHub repositorybinemmanuel/flutter_paystack_max

flutter_paystack_max

A Flutter package for making payments via Paystack Payment Gateway (https://paystack.com). Compatible with Android and iOS (Bank, Bank transfer, Card, USSD, Mobile Money, QR and EFT)

flutter_paystack_max project cover
Stars
15
Forks
10
Last push (UTC)
Feb 12, 2025
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

A Flutter package for making payments via Paystack Payment Gateway (https://paystack.com)

pub.dev likes popularity pub points

Pay with card Pay with mobile money

Features

:heavy_check_mark: All Paystack supported payment methods/channels

  • Mobile Money
  • Card
  • USSD
  • Bank Transfer
  • Bank
  • QR
  • EFT

:heavy_check_mark: Verifying Transactions

Supported Platforms

  • Android and
  • iOS

Prerequisites

  • Paystack secret key
  • Callback URL

No configuration required for this package works out of the box.

Usage

  1. Create a transaction request object.
final request = PaystackTransactionRequest(
    reference: '...',
    secretKey: '....',
    email: '...',
    amount: 15 * 100,
    currency: PaystackCurrency.ngn,
    channel: [
        PaystackPaymentChannel.mobileMoney,
        PaystackPaymentChannel.card,
        PaystackPaymentChannel.ussd,
        PaystackPaymentChannel.bankTransfer,
        PaystackPaymentChannel.bank,
        PaystackPaymentChannel.qr,
        PaystackPaymentChannel.eft,
    ],
);
  1. Initialize the transaction with the above transaction request.
final initializedTransaction = await PaymentService.initializeTransaction(request);

if (!initializedTransaction.status) {
    ScaffoldMessenger.of(context).showSnackBar(SnackBar(
        backgroundColor: Colors.red,
        content: Text(initializedTransaction.message),
    ));

    return;
}
  1. Open the payment modal to accept payment
final response = await PaymentService.showPaymentModal(
    context,
    transaction: initializedTransaction,
    // Callback URL must match the one specified on your paystack dashboard,
    callbackUrl: '...'
).then((_) async {
    return await PaymentService.verifyTransaction(
        paystackSecretKey: '...',
        initializedTransaction.data?.reference ?? request.reference,
    );
});

print(response); // Result of the confirmed payment

Additional information

Visit the paystack documentation for more information https://paystack.com/docs/api/transaction

:pencil: Contributing, :disappointed: Issues and :bug: Bug Reports

This project is open to contributions.
Please feel very free to help improve the payment experience on Flutter.
Experienced an issue or want to report a bug? Please, report it here.

Bin Emmanuel GitHub avatar
GitHub author

Bin Emmanuel ↗

As a software engineer, I am passionate about developing efficient and effective solutions to complex problems.

SoftkodesGwainpa, Abuja, Nigeria Official website ↗
LanguagesDartRubySwiftKotlinObjective-C

Packages published by this repository

Dependencies used

Dependency list 7 items

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗