flutter_kora 0.0.1
flutter_kora: ^0.0.1 copied to clipboard
The official Flutter SDK for KoraPay
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_kora/flutter_kora.dart';
Future<void> main() async {
await dotenv.load(fileName: ".env");
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Kora SDK Example',
theme: ThemeData(useMaterial3: true),
home: const ExamplePage(),
);
}
}
class ExamplePage extends StatelessWidget {
const ExamplePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Kora SDK Example')),
body: Center(
child: ElevatedButton(
onPressed: () => _startPayment(context),
child: const Text('Start Payment'),
),
),
);
}
void _startPayment(BuildContext context) {
FlutterKora().startPayment(
context: context,
customerEmail: 'example@kora.app',
customerName: 'Example User',
amount: 100.0,
publicKey: 'pk_test_XXXXXXXXXXXXXXXX',
onClose: () {
ScaffoldMessenger.of(
context,
).showSnackBar(const SnackBar(content: Text('Payment closed')));
},
onError: (String? reason) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Error: $reason')));
},
onSuccess: (String? response) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Success: $response')));
},
currency: 'NGN',
narration: 'Example payment',
channels: ['card'],
);
}
}