lengopay_flutter 1.3.0 copy "lengopay_flutter: ^1.3.0" to clipboard
lengopay_flutter: ^1.3.0 copied to clipboard

Package Flutter pour l'intégration de l'API de paiement Lengo Pay. Support des paiements classiques (v1) et Cash In direct (v2) vers Orange Money et MTN Mobile Money Guinée.

example/lib/main.dart

import 'dart:developer';
import 'package:lengopay_flutter/lengopay_flutter.dart';
import 'package:flutter/material.dart';

/// Exemple d'application démontrant l'utilisation du package lengopay_flutter
///
/// Fonctionnalités disponibles :
/// - API v1 : Génération d'URL de paiement classique
/// - API v2 : Paiements Cash In directs vers comptes mobiles
/// - Vérification du statut des transactions
///
/// ⚠️ Important : Les callbacks ne sont pas gérés par le SDK
/// Vous devez implémenter votre propre endpoint serveur pour les recevoir

void main() => runApp(const LengoPayApp());

class LengoPayApp extends StatefulWidget {
  const LengoPayApp({super.key});

  @override
  State<LengoPayApp> createState() => _LengoPayAppState();
}

class _LengoPayAppState extends State<LengoPayApp> {
  String output =
      'Choisissez une option pour tester les fonctionnalités Lengo Pay.';

  Future<void> testPayment() async {
    // Initialisation du service Lengopay avec votre clé de licence
    final lengopay = LengopayFlutter(
      // Clé de licence obtenue sur votre compte Lengopay
      licenseKey: 'VOTRE_LICENSE_KEY',

      // Par defaut le package utilise l'url de test: 'https://sandbox.lengopay.com/api/v1'
      // vous pouvez utiliser l'URL de production
      // ici 👇👇
      // baseUrl:
    );

    try {
      // Initier un paiement
      final paymentResponse = await lengopay.initiatePayment(
        PaymentRequest(
          websiteId: 'VOTRE_WEBSITE_ID',
          // L'identifiant unique de votre site
          amount: 2000,
          // Montant du paiement
          currency: 'GNF',
          // Devise utilisée "GNF", "XOF" ou "USD"
          returnUrl: '',
          // (Optionnel) URL de retour
          callbackUrl: '',
          // (Optionnel) URL de callback
        ),
      );
      setState(() {
        output = '''
              Status: ${paymentResponse.status}
              Pay ID: ${paymentResponse.payId}
              URL de paiement: ${paymentResponse.paymentUrl}
        ''';
      });
      // Vous pouvez remplacer log par print selon vos bésoins.
      log('Status: ${paymentResponse.status}');
      log('Pay ID: ${paymentResponse.payId}');
      log('URL de paiement: ${paymentResponse.paymentUrl}');
    } on LengopayException catch (e) {
      log('Erreur Lengopay: ${e.toString()}');
      setState(() {
        output = 'Erreur Lengopay: ${e.toString()}';
      });
    } catch (e) {
      setState(() {
        output = 'Erreur inattendue: ${e.toString()}';
      });
      log('Erreur inattendue: ${e.toString()}');
    }
  }

  Future<void> testTransactionStatus() async {
    // Initialisation du service Lengopay avec votre clé de licence
    final lengopay = LengopayFlutter(
      // Clé de licence obtenue sur votre compte Lengopay
      licenseKey: 'VOTRE_LICENSE_KEY',

      // Par defaut le package utilise l'url de test: 'https://sandbox.lengopay.com/api/v1'
      // vous pouvez utiliser l'URL de production
      // ici 👇👇
      // baseUrl:
    );

    try {
      final transactionResponse = await lengopay.transactionStatus(
        TransactionStatusRequest(
          payId: 'VOTRE_PAY_ID',
          websiteId: "VOTRE_WEBSITE_ID",
          // L'identifiant unique de votre site
        ),
      );
      setState(() {
        output = '''
              Status: ${transactionResponse.status}
              Pay ID: ${transactionResponse.payId}
              Date: ${transactionResponse.date}
              Montant: ${transactionResponse.amount}
        ''';
      });

      // Vous pouvez remplacer log par print selon vos bésoins.
      log('Status: ${transactionResponse.status}');
      log('Pay ID: ${transactionResponse.payId}');
      log('Date: ${transactionResponse.date}');
      log('Montant: ${transactionResponse.amount}');
    } on LengopayException catch (e) {
      log('Erreur Lengopay: ${e.toString()}');
      setState(() {
        output = 'Erreur Lengopay: ${e.toString()}';
      });
    } catch (e) {
      setState(() {
        output = 'Erreur inattendue: ${e.toString()}';
      });
      log('Erreur inattendue: ${e.toString()}');
    }
  }

  Future<void> testCashIn() async {
    // Initialisation du service Lengopay avec votre clé de licence
    final lengopay = LengopayFlutter(
      licenseKey: 'VOTRE_LICENSE_KEY',
      // Par défaut utilise l'environnement sandbox pour l'API v2
      // Pour la production, spécifiez les URLs de production
      // baseUrlV2: 'https://portal.lengopay.com/api/v2',
    );

    try {
      // Initier un paiement Cash In (API v2)
      final cashInResponse = await lengopay.initiateCashIn(
        CashInRequest(
          amount: '1000', // Montant en chaîne
          currency: 'GNF',
          websiteId: 'VOTRE_WEBSITE_ID',
          typeAccount: 'lp-om-gn', // Orange Money Guinée
          account: '620124578', // Numéro de téléphone
          callbackUrl: 'https://votre-site.com/callback', // Optionnel
        ),
      );

      setState(() {
        output = '''
              Cash In Status: ${cashInResponse.status}
              Pay ID: ${cashInResponse.payId}
              Message: ${cashInResponse.message}
              
              ⚠️ Le callback sera reçu sur votre serveur
        ''';
      });

      log('Cash In Status: ${cashInResponse.status}');
      log('Pay ID: ${cashInResponse.payId}');
      log('Message: ${cashInResponse.message}');
    } on LengopayException catch (e) {
      log('Erreur Cash In: ${e.toString()}');
      setState(() {
        output = 'Erreur Cash In: ${e.toString()}';
      });
    } catch (e) {
      setState(() {
        output = 'Erreur inattendue Cash In: ${e.toString()}';
      });
      log('Erreur inattendue Cash In: ${e.toString()}');
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Lengo Pay Flutter',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Lengo Pay Flutter'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              MaterialButton(
                color: Colors.blue,
                textColor: Colors.white,
                onPressed: testPayment,
                child: const Text('Tester le paiement (API v1)'),
              ),
              const SizedBox(height: 10),
              MaterialButton(
                color: Colors.green,
                textColor: Colors.white,
                onPressed: testCashIn,
                child: const Text('Tester Cash In (API v2)'),
              ),
              const SizedBox(height: 10),
              MaterialButton(
                color: Colors.orange,
                textColor: Colors.white,
                onPressed: testTransactionStatus,
                child: const Text('Tester le statut de transaction'),
              ),
              const SizedBox(height: 20),
              Container(
                padding: const EdgeInsets.all(16),
                decoration: BoxDecoration(
                  border: Border.all(color: Colors.grey),
                  borderRadius: BorderRadius.circular(8),
                ),
                child: Text(
                  output,
                  style: const TextStyle(fontSize: 14),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
4
likes
150
points
183
downloads

Publisher

unverified uploader

Weekly Downloads

Package Flutter pour l'intégration de l'API de paiement Lengo Pay. Support des paiements classiques (v1) et Cash In direct (v2) vers Orange Money et MTN Mobile Money Guinée.

Repository (GitHub)
View/report issues

Topics

#payment #lengo-pay #mobile-money #fintech #api

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

flutter, flutter_web_plugins, http, plugin_platform_interface, web

More

Packages that depend on lengopay_flutter

Packages that implement lengopay_flutter