Vue d’ensemble du flux
Étape 1 — Stocker la commande avant le paiement
Avant de créer la facture LigdiCash, persistez la commande en base de données avec le statutpending. Vous aurez besoin de son identifiant pour tracer le paiement.
Étape 2 — Créer la facture côté backend
Votre backend appelle l’endpoint de création de facture et stocke letoken retourné.
response_code: "00") :
token en base de données en l’associant à votre commande. Vous en aurez besoin pour vérifier le paiement.
Étape 3 — Rediriger le client vers la page de paiement
Retournezresponse_text (l’URL de paiement) à votre frontend, puis redirigez le client.
Frontend (JavaScript)
return_url (succès) ou cancel_url (annulation).
Étape 4 — Réceptionner le callback
LigdiCash envoie une notification POST à votrecallback_url dès que le statut de la transaction change. Votre backend doit :
- Identifier la commande via
custom_data - Re-vérifier le statut avec l’endpoint
confirm(ne jamais faire confiance au payload seul) - Mettre à jour la commande en base
- Répondre
200 OK
Node.js (Express)
LigdiCash envoie deux requêtes POST à votre callback pour chaque événement : une en
application/x-www-form-urlencoded et une en application/json. Traitez-les de manière idempotente. Voir Idempotence du callback.Étape 5 — Vérifier le statut côté frontend
Après la redirection vers votrereturn_url, le frontend interroge votre backend pour afficher le résultat final. La return_url est un signal d’interface — elle ne prouve pas que le paiement a réussi.
Frontend — page return_url
Backend — GET /api/commandes/:id/statut
Récapitulatif
1
Stocker la commande
Créez la commande en base avec le statut
pending avant tout appel LigdiCash.2
Créer la facture
Backend → POST
/pay/v01/redirect/checkout-invoice/create. Stockez le token retourné.3
Rediriger le client
Frontend → redirection vers
response_text (même onglet ou popup). Jamais d’iframe.4
Réceptionner le callback
Répondre
200 immédiatement, puis re-vérifier via confirm avec le token stocké.5
Confirmer la commande
Mettre à jour le statut en base et déclencher la livraison si
status === "completed".6
Afficher le résultat
Frontend → interroger votre backend pour afficher le statut réel après retour sur
return_url.Pages associées
- Créer une facture — paramètres complets de l’endpoint
- Sécurisation du callback — pattern de re-vérification détaillé
- Parser custom_data — les 3 formes possibles
- Architecture recommandée — structure backend complète
