Node.js

Le package Node.js

Installation

Installez FusionPay en utilisant npm ou yarn :

npm install fusionpay

Usage

Initialisation de FusionPay

import { FusionPay } from "fusionpay";

// Initialisation de base
const fusionPay = new FusionPay("https://your-api-url.com");

// Avec un type de données personnalisé
interface OrderData {
  orderId: string;
  customerEmail: string;
}
const typedFusionPay = new FusionPay<OrderData>("https://your-api-url.com");

Paramétrage des données de paiement

fusionPay
  .totalPrice(200)
  .addArticle("Sac", 100)
  .addArticle("Veste", 100)
  .addInfo({
    orderId: "12345",
    customerEmail: "customer@example.com",
  })
  .clientName("John Doe")
  .clientNumber("01010101")
  .returnUrl("https://yourlink.com/thanks")
  .webhookUrl("https://yourlink.com/webhook");

Effectuer un paiement

try {
  const response = await fusionPay.makePayment();
  console.log("Payment initiated:", response);
  // Rediriger l'utilisateur vers l'URL de paiement ou envoyer l'URL au client
} catch (error) {
  console.error("Payment initiation failed:", error);
}

Structure de réponse au paiement

{
  statut: boolean; // Statut de l'initiation du paiement
  token: string; // Token pour la vérification du paiement
  message: string; // Message d'état
  url: string; // URL de la passerelle de paiement pour la redirection des utilisateurs
}

Gestion du rappel de paiement

Lorsque le paiement est terminé, l'utilisateur est redirigé vers votre URL de retour avec un paramètre de jeton :

Vérification de l'état des paiements

//extraire le jeton dans votre url
//eg: Nodejs -> const {token} = req.query

try {
  // Vérifier le statut du paiement

  const status = await fusionPay.checkPaymentStatus(token);
  if (status.statut && status.data.statut === "paid") {
    // Paiement réussi
    const customData = status.data.personal_Info[0];
    // Gérer le succès...
  }
} catch (error) {
  console.error("Status check failed:", error);
}

Structure de réponse pour la vérification des paiements

{
  statut: boolean;      // Statut de la demande de vérification
  message: string;      // Message d'état
  data: {
    _id: string;        // ID de l'enregistrement de paiement
    tokenPay: string;   // Jeton de paiement
    numeroSend: string; // Numéro de téléphone du client
    nomclient: string;  // Nom du client
    personal_Info: T[]; // Votre tableau de données personnalisé
    numeroTransaction: string;  // Référence de la transaction
    Montant: number;    // Montant du paiement
    frais: number;      // Frais de transaction
    statut: "pending" | "paid" | "failed";  // Statut du paiement
    moyen: string;      // Mode de paiement utilisé
    return_url: string; // URL de rappel
    createdAt: string;  // Horodatage de la transaction
  }
}

Gestion des erreurs

La bibliothèque génère des erreurs en cas d'échec des appels à l'API et de paramètres non valides. Pour une bonne gestion des erreurs, il convient de toujours intégrer les appels à l'API dans des blocs try-catch.