Passer au contenu principal

Mode Sandbox vs Production

Yabetoo fournit deux environnements distincts pour vous permettre de développer et tester en toute sécurité.

Sandbox (Test)

Environnement de test pour le développement. Aucune transaction réelle n’est effectuée.Préfixe des clés : sk_test_

Production (Live)

Environnement de production pour les transactions réelles.Préfixe des clés : sk_live_

Configuration des clés API

Ne partagez jamais vos clés API secrètes. Utilisez des variables d’environnement pour les stocker.

Variables d’environnement recommandées

Créez un fichier .env à la racine de votre projet :
.env
# Environnement de test
YABETOO_SECRET_KEY=sk_test_XXXXXXXXXXXXXXXXXXXXXXXX
YABETOO_ACCOUNT_ID=acct_xxxxxxxx

# URLs de callback
YABETOO_SUCCESS_URL=http://localhost:3000/checkout/success
YABETOO_CANCEL_URL=http://localhost:3000/checkout/cancel
YABETOO_WEBHOOK_URL=http://localhost:3000/webhooks/yabetoo

Utilisation dans votre code

import Yabetoo from "@yabetoo/sdk-js";

const yabetoo = new Yabetoo(process.env.YABETOO_SECRET_KEY);

Numéros de test

En mode sandbox, utilisez ces numéros de téléphone pour simuler différents scénarios :
NuméroOpérateurComportement
242000000001MTNPaiement réussi
242000000002MTNÉchec (fonds insuffisants)
242000000003MTNEn attente 30s, puis réussi
242000000004AirtelPaiement réussi
242000000005AirtelÉchec (numéro invalide)
Les transactions en mode test n’impliquent aucun argent réel. Vous pouvez tester autant que nécessaire.

Tester les webhooks localement

Pour recevoir les webhooks en local, utilisez un outil de tunnel comme ngrok :
1

Installez ngrok

# macOS
brew install ngrok

# ou téléchargez depuis https://ngrok.com
2

Exposez votre serveur local

ngrok http 3000
Vous obtiendrez une URL comme https://abc123.ngrok.io
3

Configurez le webhook dans le Dashboard

Allez dans Paramètres > Webhooks et ajoutez votre URL ngrok :
https://abc123.ngrok.io/webhooks/yabetoo

Vérifier la signature des webhooks

Toujours vérifier la signature des webhooks pour vous assurer qu’ils proviennent de Yabetoo :
import crypto from 'crypto';

function verifyWebhookSignature(payload, signature, secret) {
  const expectedSignature = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expectedSignature)
  );
}

Bonnes pratiques

Implémentez toujours une gestion d’erreurs robuste :
from yabetoo import Yabetoo, YabetooError
from yabetoo.errors import ValidationError, APIError

try:
    payment = yabetoo.payments.create(data)
except ValidationError as e:
    # Données invalides
    print(f"Erreur de validation: {e.errors}")
except APIError as e:
    # Erreur API
    print(f"Erreur API: {e.message}")
except YabetooError as e:
    # Autre erreur Yabetoo
    print(f"Erreur: {e}")
Utilisez des clés d’idempotence pour éviter les doublons en cas de retry :
payment = yabetoo.payments.create(
    data,
    idempotency_key="order_12345_payment"
)
Loggez toutes les transactions pour le débogage :
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("yabetoo")

# Les SDKs Yabetoo loggent automatiquement

Checklist avant production

Avant de passer en production, vérifiez :
1

Tests complets

  • Testez tous les scénarios de paiement (succès, échec, en attente)
  • Testez la réception et le traitement des webhooks
  • Testez les remboursements et annulations
2

Sécurité

  • Clés API stockées en variables d’environnement
  • Vérification des signatures webhook implémentée
  • HTTPS activé sur tous les endpoints
3

Configuration

  • URLs de callback en production configurées
  • Webhooks pointant vers le serveur de production
  • Clés de production (sk_live_) en place

Ressources utiles