A Flutter package for making payments via Paystack Payment Gateway (https://paystack.com)
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
- 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,
],
);
- 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;
}
- 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.