Aller au contenu principal

Nouveau : Nova lance NovaHawk, le suivi GPS et l'antivol pour motos et véhicules. Voir le projet →

Nova
Retour au blog
DevTechnique

MTN MoMo & Orange Money : intégrer le paiement mobile dans une app React

Guide technique complet pour les développeurs camerounais

10 avril 202612 min de lectureTechniqueÉquipe NovaÉquipe Nova
MTN MoMo & Orange Money : intégrer le paiement mobile dans une app React

MTN MoMo et Orange Money sont incontournables pour toute app e-commerce ou SaaS destinée au marché camerounais. Voici le guide technique qu'on aurait aimé avoir quand on a commencé — basé sur notre expérience réelle en production.

Architecture recommandée

Ne jamais appeler l'API Mobile Money directement depuis le frontend. Toujours passer par votre backend Node.js ou FastAPI. Cela protège vos clés API, vous permet de logger les transactions, et gère les cas où l'utilisateur ferme son navigateur avant la confirmation.

javascript
// Backend Node.js — initier un paiement MTN MoMo
const initPayment = async (amount, phoneNumber, externalId) => {
  const token = await getAccessToken(); // Bearer token OAuth2
  
  const response = await axios.post(
    'https://sandbox.momodeveloper.mtn.com/collection/v1_0/requesttopay',
    {
      amount: amount.toString(),
      currency: 'XAF',
      externalId,
      payer: { partyIdType: 'MSISDN', partyId: phoneNumber },
      payerMessage: 'Paiement Nova',
      payeeNote: 'Service Nova Cameroun',
    },
    {
      headers: {
        Authorization: `Bearer ${token}`,
        'X-Reference-Id': externalId,
        'X-Target-Environment': 'sandbox',
        'Ocp-Apim-Subscription-Key': process.env.MTN_SUBSCRIPTION_KEY,
      },
    }
  );
  
  return response.headers['x-reference-id'];
};

Le piège de la sandbox MTN

La sandbox MTN MoMo est instable par nature : elle simule des délais et des échecs aléatoires pour reproduire les conditions réelles. Ne testez jamais votre logique de retry uniquement en sandbox — vous risquez de conclure que votre code est défaillant alors qu'il s'agit d'un comportement intentionnel de l'environnement de test.

Gestion des webhooks

MTN MoMo envoie un webhook à votre endpoint quand la transaction change de statut. En production, ces webhooks peuvent arriver avec plusieurs minutes de délai. Ne bloquez jamais l'utilisateur en attendant le webhook — retournez immédiatement un statut "en attente" et mettez à jour l'UI via polling ou WebSocket quand la confirmation arrive.

Orange Money : différences clés

L'API Orange Money Cameroun utilise un flux d'authentification différent de MTN. Elle requiert une validation par numéro USSD côté utilisateur dans certains cas. Anticipez une UX légèrement différente selon l'opérateur : MTN confirme souvent par notification push, Orange demande parfois une confirmation USSD.

L'intégration MoMo/Orange Money demande de la patience mais est tout à fait maîtrisable. Le plus important : loggez absolument toutes vos transactions avec horodatage et statut. En cas de litige, ces logs sont votre seule preuve.

Équipe Nova

Équipe Nova

Studio Nova Cameroun

Découvrir l'équipe