Skip to main content

Vue d’ensemble

Cette page contient des exemples complets d’implémentation de webhooks JEKO dans différents langages. Tous les exemples incluent :
  • Vérification de la signature HMAC-SHA256
  • Parsing du payload
  • Traitement des événements
  • Gestion d’erreurs

Node.js (Express)

PHP

Python (Flask)

Ruby (Sinatra)

Test avec cURL

Points importants

  1. Payload plat : Les champs de la transaction sont à la racine du corps de la requête, sans enveloppe event / data
  2. Référence : Lisez transactionDetails.reference avec un fallback sur apiTransactionableDetails.reference — elle n’est jamais à la racine
  3. Statut pending : Ignorez-le, ne passez jamais une commande en échec dessus
  4. Idempotence : Plusieurs webhooks arrivent pour une même transaction — ignorez ceux dont la commande est déjà finalisée
  5. amount.amount : Peut être une chaîne ou un nombre, convertissez avant toute comparaison
  6. Body brut : Utilisez toujours le body brut (raw body) pour calculer la signature, pas le JSON parsé
  7. Comparaison sécurisée : Utilisez une comparaison sécurisée (timing-safe) pour éviter les attaques par timing
  8. Réponse rapide : Répondez rapidement pour éviter les retries
  9. Traitement asynchrone : Pour les traitements longs, acceptez le webhook immédiatement et traitez-le en arrière-plan