Back to 0fee
0fee

Session 2 : tableau de bord, SDK, widget de checkout et Celery en 60 minutes

Comment nous avons construit le tableau de bord, le widget de checkout, 2 SDK et les tâches Celery en 60 minutes. Par Juste A. Gnimavo et Claude.

Juste A. Gnimavo (Thales) & Claude | March 27, 2026 5 min 0fee
EN/ FR/ ES
session-002solidjsdashboardsdkscheckout-widgetcelery

La Session 001 a produit le backend. La Session 002, toujours le 10 décembre 2025 -- le même jour -- a produit tout ce dont une plateforme de paiement a besoin pour être utilisable : deux nouveaux fournisseurs de paiement, un tableau de bord SolidJS complet, un widget de checkout intégrable, des tâches Celery en arrière-plan et des SDK officiels en TypeScript et Python. Soixante minutes.

Ce que la Session 002 a livré

ComposantDescription
Fournisseur BUIAfrique francophone -- CI, BJ, BF, CM, ML, SN, TG
Fournisseur PaiementProAfrique francophone + cartes -- CI, BJ, BF, GW, ML, NE, SN
Tableau de bord SolidJSConnexion, tableau de bord, applications, transactions, paramètres
Widget Checkout.jsWidget de paiement intégrable avec flux multi-étapes
Tâches CeleryRetry de webhooks, réconciliation des paiements, règlement
SDK TypeScriptClient officiel Node.js/TypeScript
SDK PythonClient officiel Python

À la fin de la Session 002, 0fee.dev disposait de 7 fournisseurs de paiement, un tableau de bord frontend, un widget de checkout pour les marchands, un traitement de tâches en arrière-plan et deux SDK prêts pour npm et PyPI.

Phase 1 : deux nouveaux fournisseurs

Fournisseur BUI

BUI gère le mobile money en Afrique de l'Ouest francophone. Son implémentation nécessitait une gestion spéciale de deux flux distincts :

  • Orange Money (Côte d'Ivoire) : Validation par OTP. Le client reçoit un OTP sur son téléphone, le saisit dans le flux de checkout, et BUI le valide.
  • Wave : Flux de redirection. BUI renvoie une URL de paiement, le client est redirigé vers la page de Wave, et 0fee.dev fait du polling pour la complétion.

Fournisseur PaiementPro

PaiementPro est un agrégateur de paiement majeur pour l'Afrique francophone, supportant Orange Money, MTN, Moov, Wave, Free, Airtel et même les paiements par carte. Son intégration utilise un flux de redirection.

Avec BUI et PaiementPro, le nombre de fournisseurs a atteint 7 -- une couverture complète pour l'Afrique francophone avec plusieurs options de repli par pays.

Phase 2 : le tableau de bord SolidJS

Le tableau de bord est l'interface destinée aux marchands où les développeurs gèrent leurs applications, clés API, identifiants de fournisseurs et transactions. Il a été construit avec SolidJS, choisi pour sa réactivité fine et sa taille de bundle minimale (7 Ko de runtime).

Pages clés

Dashboard.tsx -- La page de vue d'ensemble principale montrant le volume de transactions, les taux de succès, le chiffre d'affaires et l'activité récente.

Apps.tsx -- CRUD complet pour les applications marchandes. Chaque application a ses propres clés API, identifiants de fournisseurs et configuration de routage.

Transactions.tsx -- Une liste filtrable et paginée de toutes les transactions de toutes les applications. Les filtres incluent le statut, le fournisseur, la plage de dates et la plage de montants.

Phase 3 : le widget de checkout

Le widget de checkout -- checkout.js -- est une bibliothèque JavaScript que les marchands intègrent sur leurs sites web. Il ouvre un modal, présente les méthodes de paiement en fonction du pays du client, collecte les détails de paiement et traite le paiement. Pensez au stripe.js de Stripe mais pour le mobile money africain.

Le widget implémente un flux de paiement en quatre étapes :

  1. Sélection du pays. Le client sélectionne son pays dans une grille.
  2. Sélection de la méthode de paiement. Les opérateurs disponibles s'affichent.
  3. Détails de paiement. Pour le mobile money, le client saisit son numéro de téléphone.
  4. Traitement et confirmation. Le widget affiche un état de traitement, fait du polling et affiche le succès ou l'échec.

Phase 4 : tâches Celery en arrière-plan

Trois catégories de tâches en arrière-plan tournent sur Celery avec DragonflyDB comme broker :

Retry de webhooks

Quand une livraison de webhook échoue, la tâche programme un retry avec backoff exponentiel : 1 min, 5 min, 30 min, 2 h, 8 h, 24 h.

Réconciliation des paiements

Toutes les 5 minutes, une tâche planifiée vérifie les paiements bloqués en statut « pending » et interroge le fournisseur pour leur statut actuel.

Traitement des règlements

Une tâche quotidienne à 00:30 UTC calcule les montants de règlement pour chaque marchand.

Phase 5 : SDK TypeScript

Le SDK TypeScript officiel fournit un client typé pour l'API 0fee.dev :

typescriptimport { ZeroFee } from "zerofee";

const zf = new ZeroFee("sk_live_your_key_here");

const payment = await zf.payments.create({
    amount: 5000,
    payment_method: "PAYIN_ORANGE_CI",
    customer: {
        phone: "+2250709757296",
        name: "Amadou Diallo",
    },
});

Phase 6 : SDK Python

Le SDK Python suit les mêmes patterns avec des modèles Pydantic pour la validation de type :

pythonfrom zerofee import ZeroFee

zf = ZeroFee(api_key="sk_live_your_key_here")

payment = zf.payments.create(
    amount=5000,
    payment_method="PAYIN_ORANGE_CI",
    customer={
        "phone": "+2250709757296",
        "name": "Amadou Diallo",
    },
)

Le bilan de la Session 002

MétriqueValeur
Nouveaux fournisseurs2 (BUI, PaiementPro)
Total fournisseurs7
Pages du tableau de bord5
SDK2 (TypeScript, Python)
Temps écoulé~60 minutes

Deux sessions. Deux heures au total. La plateforme disposait d'un backend complet, 7 fournisseurs de paiement, un tableau de bord frontend, un widget de checkout intégrable, un traitement de tâches en arrière-plan et des SDK officiels en deux langages. La Session 003 ajouterait un site marketing, 5 SDK supplémentaires et une configuration Docker -- en une seule session.


Cet article fait partie de la série « Comment nous avons construit 0fee.dev ». 0fee.dev est un orchestrateur de paiement couvrant 53+ fournisseurs dans 200+ pays, construit par Juste A. GNIMAVO et Claude depuis Abidjan sans aucun ingénieur humain. Suivez la série pour l'histoire complète de la construction.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude thales

Treize agents, quarante-trois minutes : la première session Workflow de Claude Fable 5, et ce qu'un script d'orchestration déterministe change aux builds multi-agents

Un prompt, treize agents, quarante-trois minutes : la première session de production avec Claude Fable 5 et l'outil Workflow de Claude Code a livré un site web de production complet de sept pages plus un endpoint backend de capture de leads, en un seul commit. Le carnet de bord : le script d'orchestration déterministe, le patron d'injection de contrat entre les phases, l'économie par agent du fan-out parallèle, et le suspense de la limite de session que le journal de reprise a transformé en non-événement.

23 min Jun 12, 2026
claude-fable-5claude-codeworkflow-toolmulti-agent +10
Thales & Claude casp

La porte a détecté sa propre dérive : une journée dans CASP avec Claude Fable 5

Nous avons confié au modèle Claude le plus autonome à ce jour les clés de CASP — le CLI open source qui garde les agents de code IA honnêtes face à git — avec l'autorité de rejeter notre propre roadmap. Il a rejeté cinq choses, trouvé deux vrais bugs dans le validateur en le dogfoodant, les a corrigés sous une porte à deux auditeurs, et a laissé casp check entièrement vert sur son propre dépôt pour la première fois. CASP 0.3.0 en est le résultat.

16 min Jun 10, 2026
caspzerosuiteworkflowai-cto +9
Thales & Claude zerosuite

La transplantation du CASP : comment la discipline des six fichiers est passée de Conductor à un ERP transport anti-fraude, ce que la compétence /next ajoute quand l'opérateur tape juste « next », et pourquoi le coût d'une dérive du CASP grimpe quand le projet, c'est l'argent des autres

La discipline du CASP qui a piloté trente-cinq sessions de Conductor est agnostique au produit. Le carnet de bord de sa transplantation sur KASSIA, un ERP transport anti-fraude pour un exploitant de flotte en Côte d'Ivoire : ce qui a migré, ce qui n'a pas migré (le validateur sur mesure — et ce que son absence coûte), ce que la compétence /next ajoute quand l'opérateur tape un seul mot, et là où le CASP s'arrête — le bug de déploiement qu'il ne pouvait pas voir parce qu'il enregistre l'intention, pas la réalité de l'infrastructure.

23 min Jun 8, 2026
kassiaerp-kassia-transport-logistiquezerosuiteCASP +15