feda 0.0.3
feda: ^0.0.3 copied to clipboard
Ce plugin est concu pour faciliter les interactions entre nos divers applications flutter et l'api de FedaPay.
example/lib/main.dart
import 'package:feda/models/transaction.dart';
import 'package:flutter/material.dart';
import 'package:feda/feda.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: Accueil(),
);
}
}
class Accueil extends StatefulWidget {
const Accueil({super.key});
@override
State<Accueil> createState() => _AccueilState();
}
class _AccueilState extends State<Accueil> {
final _idController = TextEditingController(text: "192809");
// Recupération de toute mes transactions
getAllData() async {
var data = await Feda.all_transactions();
print(data);
}
// Recupération des données d'une transaction
findTransaction() async {
FedaTransaction data =
await Feda.find_transaction(int.parse(_idController.text));
print(data.toString());
}
createRedirectTransaction() async {
// Récupération du lien de paiement pour lantransaction afin de faire une redirection
var transaction_lien = await Feda.create_transaction(
FedaTransactionRequest(
amount: 500,
clienMail: "tbaissou@gmail.com",
description: "Ma premiere trx feda",
phone_number: {
'number': "65924088",
'country': 'bj',
}),
);
print(transaction_lien);
// --- ou ---
// Feda.create_transaction(
// FedaTransactionRequest(
// amount: 500,
// clienMail: "tbaissou@gmail.com",
// description: "Ma premiere trx feda",
// phone_number: {
// 'number': "65924088",
// 'country': 'bj',
// }),
// ).then((transaction_lien) {
// // code de redirection
// });
}
createTransaction() async {
Feda.create_transaction(
// Transaction sans redirection
// Pour les réseaux, je ne connais que les valeurs ci apreès : 'mtn', 'moov', 'mtn_ci', 'moov_tg', 'mtn_open', 'airtel_ne', 'free_sn','togocel', 'mtn_ecw'
// Vous allez devoir vous débrouillez pour le reste 😅😅
FedaTransactionRequest(
amount: 500,
clienMail: "tbaissou@gmail.com",
description: "Ma premiere trx feda",
phone_number: {
'number': "65924088",
'country': 'bj',
}),
redirect: false,
reseau: 'moov');
}
@override
Widget build(BuildContext context) {
double longeur = MediaQuery.of(context).size.height;
double largeur = MediaQuery.of(context).size.width;
return Scaffold(
appBar: AppBar(
title: const Text('FedaPay plugin'),
),
body: Center(
child: Padding(
padding: EdgeInsets.symmetric(horizontal: largeur / 15),
child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
const Text("Tout récupérer"),
ElevatedButton(
key: const Key('get_all_btn'),
onPressed: getAllData,
child: const Text("Récupérer")),
Padding(
padding:
EdgeInsets.only(top: longeur / 15, bottom: longeur / 50.0),
child: const Text("Récupérer une transaction avec son id"),
),
TextFormField(
key: const Key('trx_id'),
controller: _idController,
decoration: InputDecoration(
border: const OutlineInputBorder(),
labelText: 'Password',
suffix: InkWell(
key: const Key('get_btn'),
onTap: findTransaction,
child: const Icon(
Icons.search,
color: Colors.blue,
))),
),
Padding(
padding:
EdgeInsets.only(top: longeur / 15, bottom: longeur / 50.0),
child: const Text("Lancer une transaction redirigée vers Feda"),
),
ElevatedButton(
key: const Key('create_redirect_btn'),
onPressed: createRedirectTransaction,
child: const Text("Récupérer")),
Padding(
padding:
EdgeInsets.only(top: longeur / 15.0, bottom: longeur / 50.0),
child: const Text("Lancer une transaction sans redirection"),
),
ElevatedButton(
key: const Key('create_btn'),
onPressed: createTransaction,
child: const Text("Récupérer")),
]),
),
),
);
}
}