Intégration CinetPay SDK Flutter


MIT License CinetPay Logo

Ce package vous permet d'invoquer le guichet de paiement de CinetPay, effectuer un paiement et attendre le statut du paiement initié à la seconde près après la fin du paiement

🔗 Les étapes

L'utilisation du package est la plus simple possible, dans son utilisation, il s'agit d'invoquer celui-ci avec :

  • Les paramétres d'initialisation du guichet
  • Les données relatives au paiement
  • Le callback d'attente du retour de paiement
  • Le callback d'écoute d'erreur d'exécution

🛠 Les prérequis

Quelques prérequis sont nécessaires pour faire fonctionner correctement le package.

  • Android

    • Ajouter les permissions suivantes dans le fichier android/app/src/main/AndroidManifest.xml

          <application
              ...
              android:usesCleartextTraffic="true">
              ...
          </application>
          ...
          <uses-permission android:name="android.permission.INTERNET"/>
    • Modifier la version du minSdkVersion dans le fichier android/app/src/build.gradle

      minSdkVersion 17

    • IOS

      • Ajouter la permission suivante dans le fichier ios/Runner/Info.plist

           <key>NSAppTransportSecurity</key>
           <dict>
               <key>NSAllowsArbitraryLoads</key>
               <true/>
           </dict>

Initialisation du guichet

Pour fonctionner, le guichet doit impérativement recevoir des données telles que :

  • apikey | L’identifiant du marchand | Chaine de caractère | Obligatoire
  • site_id | L'identifiant du service | Entier | Obligatoire
  • notify_url | URL de notification de paiement valide | URL | Obligatoire

Données du paiement

Pour effectuer le paiement, certaines données devront-être soumises pour préparer le guichet. Ainsi, on a :

  • amount | Montant du paiement (>= 100 XOF) | Entier | Obligatoire
  • currency | Devise du paiement (XOF - XAF - CDN - GNF - USD) | Chaîne de caractère | Obligatoire
  • transaction_id | L'identifiant de la transaction. Elle doit-être unique, pour chaque transaction | Chaîne de caractère | Obligatoire
  • description | La description de votre paiement | Chaîne de caractère | Obligatoire
  • channels | L’univers de paiement. Peut être : ALL - MOBILE_MONEY - CREDIT_CARD - WALLET. Par défaut : 'ALL' Toute combinaison est applicable à en séparant par une virgule : 'MOBILE_MONEY, WALLET' | Chaîne de caractère | Facultatif
  • metadata | | Chaîne de caractère | Facultatif
  • customer_name | Nom de l’acheteur * | Chaîne de caractère | Facultatif
  • customer_surname | Prénoms de l’acheteur * | Chaîne de caractère | Facultatif
  • customer_email | Adresse email de l’acheteur * | Chaîne de caractère | Facultatif
  • customer_phone_number | Numéro de téléphone de l’acheteur * | Chaîne de caractère
  • customer_city | Ville de l’acheteur * | Chaîne de caractère | Facultatif
  • customer_country | Pays de l’acheteur. Code ISO2 du pays (CI => Côte-d'Ivoire). * | Chaîne de caractère | Facultatif
  • customer_state | Etat de l’acheteur (Lorsque USA est utilisé comme pays) * | Chaîne de caractère | Facultatif
  • customer_zip_code | Code postal de l’acheteur * | Chaîne de caractère | Facultatif

    NB : * Obligatoire si utilisation de l’univers bancaire (CREDIT_CARD)

Callback de retour de paiement

Lorsque le paiement est enclenché, le package reste en attente du statut final du paiement-ci. Ainsi, à la fin du paiement le package reçoit le statut, qu'il le transmet au travers du callback qui sera définit. Le format de retour attendu est le suivant :

  • amount | Montant du paiement | Entier
  • currency | Devise du paiement | Chaîne de caractère
  • status | Statut du paiement (ACCEPTED ou REFUSED) | Chaîne de caractère
  • payment_method | Moyen du paiement | Chaîne de caractère
  • description | La description de votre paiement | Chaîne de caractère
  • metadata | Chaîne de caractère
  • operator_id | L'identifiant du paiement de l'opérateur | Chaîne de caractère
  • payment_date | La date du paiement | Chaîne de caractère

Callback d'erreur de traitement

Lors du traitement, il peut survenir certains types d'erreurs telles que, certains paramètres pour le paiement manquantes. Le format de retour attendu est le suivant :

  • message | Chaîne de caractère
  • description| Chaîne de caractère

👩‍💻 Utilisation du package

En resumé, le package s'utilise par le biais d'un appel widget :

CinetPayCheckout(
    title: 'Guichet de paiement',
    configData: <String, dynamic> {
        'apikey': 'YOUR_API_KEY',
        'site_id': YOUR_SITE_ID,
        'notify_url': 'https://mondomaine.com/notify/'
    },
    paymentData: <String, dynamic> {
        'transaction_id': 'YOUR_TRANSACTION_ID',
        'amount': 100,
        'currency': 'XOF',
        'channels': 'ALL',
        'description': 'Test de paiement'
    },
    waitResponse: (response) {
        print(response);
    }
    onError: (error) {
        print(error);
    }
);

CinetPay Checkout

Exemple

Exemple d'utilisation du SDK FLUTTER


En savoir plus