Integrating Easypaisa Payment Gateway in Flutter with Provider State Management
A comprehensive guide with code examples on how to add the Easypaisa payment gateway to your Flutter app and manage the payment state with the Provider package

Easypaisa is a popular payment gateway in Pakistan that enables merchants to accept online payments from customers. Integrating Easypaisa into your Flutter app can help you expand your business and reach more customers.
In this article, we'll be showing you how to integrate the Easypaisa payment gateway in your Flutter app using the Provider package for state management. The Provider package provides a simple and efficient way to manage your app's state.
Step 1: Install Required Packages
To start, you'll need to install the Provider package in your Flutter project. Open your pubspec.yaml file and add the following dependency:
dependencies:
provider: ^4.1.2
Step 2: Create a Model Class
Next, you'll need to create a model class that represents the payment state. The payment state will be used to keep track of the payment status, such as 'processing', 'success', or 'failure'.
class PaymentState with ChangeNotifier {
String _status;
PaymentState({
String status = 'idle'
}
)
{
_status = status;
}
String get status => _status;
set status(String value) {
_status = value; notifyListeners();
}
}
Step 3: Create a Provider
With the model class in place, you can now create a provider that will manage the payment state. The provider is a class that extends the ChangeNotifierProvider from the Provider package.
class PaymentProvider extends ChangeNotifierProvider<PaymentState> {
PaymentProvider() : super(create: (_) => PaymentState());
}
Step 4: Integrating Easypaisa
Now that you have the Provider set up, you can integrate the Easypaisa payment gateway into your Flutter app. To integrate Easypaisa, you'll need to send a request to their server with the necessary payment information, such as the amount and customer's details.
Here is an example of how you can make a payment request to Easypaisa:
Future<void> makeEasypaisaPayment(String amount) async {
PaymentState paymentState = Provider.of<PaymentState>(
context, listen: false);
paymentState.status = 'processing'; try {
// Code to process Easypaisa payment
paymentState.status = 'success';
}
catch (e) {
paymentState.status = 'failure';
}
}
Step 5: Updating the UI
Finally, you can update the UI based on the payment status. You can use the Provider.of method to access the payment state and display different widgets depending on the payment status.
For example, in your main widget, you can wrap it with a MultiProvider that provides the PaymentProvider.
class MyApp extends StatelessWidget {
@override Widget build(BuildContext context) {
return MultiProvider(
providers: [
PaymentProvider(),
],
child: MaterialApp(
home: HomePage(),
),
);
}
}
In the HomePage widget, you can use the Provider.of method to access the payment state and display a button to trigger the
payment and display the payment status.
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final paymentState = Provider.of<PaymentState>(context);
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (paymentState.status == 'idle')
RaisedButton(
onPressed: () => makeEasypaisaPayment('100'),
child: Text('Make Payment'),
),
if (paymentState.status == 'processing')
CircularProgressIndicator(),
if (paymentState.status == 'success')
Text('Payment Successful'),
if (paymentState.status == 'failure')
Text('Payment Failed'),
],
),
),
);
}
}
And that's it! With these simple steps, you have successfully integrated the Easypaisa payment gateway in your Flutter app with Provider state management. The Provider package provides a centralized and reusable way to manage the payment state and update the UI accordingly.
Conclusion
In this article, we have demonstrated how to integrate the Easypaisa payment gateway in Flutter with Provider state management. By using the Provider package, you can keep your payment state in one place and easily update the UI based on the payment status.
I hope this article has been helpful in demonstrating how to integrate the Easypaisa payment gateway in Flutter with Provider state management. If you have any questions or comments, feel free to leave them below.

Comments (1)
Your business is already on its way to success, if you have taken care of the current payment gateway in a timely manner, I advise you to learn more about it here https://www.edvantis.com/blog/payment-gateways-in-bigcommerce-what-are-your-options/ . After all, the demand and satisfaction of your consumers will directly depend on convenient functionality and a quality product.