import 'package:flutter/material.dart';
import 'package:payment_plugin/payment_plugin.dart';
import 'package:dio/dio.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Initialize the payment plugin once
await PaymentPlugin.initialize(
config: PaymentConfig(dio: Dio(), environment: PaymentEnvironment.test),
);
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _status = 'Plugin initialized';
@override
void initState() {
super.initState();
// Plugin is already initialized in main()
// You can access it anywhere using PaymentPlugin.instance
_loadCards();
}
Future<void> _loadCards() async {
try {
// Example: Get stored cards
final cards = await PaymentPlugin.instance.getCards();
setState(() {
_status = 'Plugin ready. Found ${cards.length} stored cards.';
});
} catch (e) {
setState(() {
_status = 'Plugin ready. Error loading cards: $e';
});
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('Payment Plugin Example')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(_status),
const SizedBox(height: 20),
const Text(
'This is an example app showing how to use the payment plugin.\n\n'
'Initialize once in main():\n'
'await PaymentPlugin.initialize(config: PaymentConfig(...))\n\n'
'Then use anywhere:\n'
'PaymentPlugin.instance.getCards()',
textAlign: TextAlign.center,
),
],
),
),
),
);
}
}