Aller au contenu
Alex ALAVO.

Étude de cas 05 · Paiements · Backend · Énergie

ÉnergiePay

Transforme les SMS de paiement Mobile Money en recharges d'électricité, automatiquement et avec traçabilité.

Rôle
Conception et développement full-stack
Catégorie
Paiements · Backend · Énergie
Stack
Laravel · React · TypeScript
Tableau de bord des paiements, codes corrigés et SMS en attente
Historique filtrable des paiements

01 — Contexte

Pour un exploitant d'électricité prépayée, transformer un paiement Mobile Money en crédit demandait de rapprocher le montant, la référence client et le compte du compteur, malgré des références mal saisies et des messages reçus plusieurs fois.

02 — Problème

Références mal saisies, SMS reçus en double, API qui coupe : chaque paiement demandait une vérification à la main.

03 — Solution

La plateforme reçoit les SMS de paiement par API, en extrait les informations et normalise les références. Selon le montant, elle comptabilise une tranche d'installation ou demande une recharge à SparkMeter, enregistre la transaction et envoie une confirmation. Les gestionnaires suivent les opérations, les clients et les anomalies depuis une interface dédiée.

04 — Fonctionnalités

  • Paiements automatiques

    Montant, payeur, référence et transaction extraits du SMS, recharge transmise.

  • Références normalisées

    Nettoyage, remise en ordre et correspondance avec les sites connus.

  • Reprise des échecs

    Vérification du solde après une erreur d'API et nouvelles tentatives planifiées.

  • Frais d'installation

    Classement par seuil, suivi des tranches et exemptions individuelles.

  • Consultation du solde

    Depuis le web, par SMS ou via une API protégée.

  • Alertes et exports

    Alertes de solde faible et exports Excel filtrés.

06 — Architecture

  1. Passerelle SMSMobile Money
  2. API Laravelréception · parsing
  3. Services métierpaiements · références
  4. API SparkMeterrecharge du compteur
  5. Jobs · SMSconfirmations · alertes

Un backend Laravel commun sert l'interface de gestion React (via Inertia) et les API de réception.

Confirmations, synchronisations et relances sont des jobs ou listeners ; la base conserve chaque opération et son état pour permettre les reprises.

07 — Défis techniques

  • Défi

    Interpréter des références saisies de façon irrégulière.

    Solution

    Service de parsing avec règles de nettoyage et de correspondance ; corrections journalisées avec leur motif.

  • Défi

    Gérer un paiement dont la réponse API est incertaine.

    Solution

    Même identifiant externe réutilisé, contrôle de l'évolution du solde et reprise planifiée.

  • Défi

    Reprendre un historique SQL existant.

    Solution

    Commande dédiée avec mode simulation, normalisation et contrôle des doublons.

08 — Mon intervention

  • Architecture et règles de traitement des paiements
  • Backend Laravel et interfaces React / TypeScript
  • Modèle de données, migrations et index
  • Intégration des API SparkMeter et SMS
  • Tableaux de bord, historiques et exports
  • Permissions, tests et pipeline de déploiement

09 — Stack

Backend
PHP 8, Laravel 10, jobs, événements, planificateur
Frontend
React 19, TypeScript, Inertia.js, Tailwind CSS, TanStack Table
Données
MySQL, Laravel Excel
Intégrations
API SparkMeter, API SMS
Livraison
PHPUnit, GitHub Actions, déploiement SSH

10 — Résultats

  • 3

    canaux de consultation du solde : web, SMS et API

  • 0

    double crédit après une coupure d'API, grâce à l'identifiant réutilisé

Étude de cas suivante1:1 DigitalPrépare les entretiens manager–collaborateur avec l'IA et transforme les notes en compte rendu validé à deux.