multi_payment_gateway 0.0.3
multi_payment_gateway: ^0.0.3 copied to clipboard
A Flutter package to simplify integrating multiple payment gateways like Paymob, PayPal, and Stripe.
example/main.dart
import 'package:flutter/material.dart';
import 'package:multi_payment_gateway/stripe_payment_kit.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
StripeSetup.setup(publishableKey: "PUBLISHABLE_KEY");
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key, required this.title});
final String title;
Future<void> payWithStripe() async {
var token = "SECRET_KEY";
final SetupStripePayment intent = SetupStripePayment(token: token);
await StripeService.instance.pay(setupPayment: intent);
}
Future<void> payWithPaymob(BuildContext context) async {
final SetupPaymobPayment setupPayment = SetupPaymobPayment(
context: context,
frameId: "839579",
integrationId: int.parse("INTEGRATION_ID"),
apiKey: "PAYMOB_API_KEY");
await PaymobPaymentService.instance.pay(setupPayment: setupPayment);
}
void payWithPaypal(BuildContext context) async {
final paypalModel = SetupePaypalPayment(
context: context,
clientId: "PAYPAL_CLIENT_ID",
secretKey: "PAYPAL_SECRET_KEY"
);
await PaypalService.instance.pay(setupPayment: paypalModel);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(title),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
IconButton(
onPressed: () async {
await payWithStripe();
},
icon: Icon(Icons.payment)),
IconButton(
onPressed: () {
payWithPaypal(context);
},
icon: Icon(Icons.payment)),
IconButton(
onPressed: () async {
await payWithPaymob(context);
},
icon: Icon(Icons.payment),
)
],
),
);
}
}