Sites web, plugins et SEO au Rwanda Kigali Lancer un projet

Ecommerce / Note de terrain 11

API MTN MoMo : comment un site web au Rwanda accepte Mobile Money

Un bouton Mobile Money semble simple. Derrière lui, votre site demande à MTN d’envoyer une demande de paiement sur le téléphone du client, puis attend une réponse fiable. Voici comment cela fonctionne, en termes simples, pour les chefs d’entreprise et les développeurs qu’ils engagent.

Code source affiché sur un écran d'ordinateur
Photo par Rob Wingate sur Unsplash
L’essentiel

Créez et testez dans le bac à sable MTN, gardez chaque clé sur le serveur, et marquez une commande comme payée seulement après que votre serveur a confirmé le statut auprès de MTN. Airtel Money nécessite sa propre intégration ou un prestataire qui combine les deux.

01

Ce qui se passe quand un client paie

  1. Le client choisit MTN MoMo au paiement et saisit son numéro MTN.
  2. Le serveur de votre site envoie à MTN une demande pour payer le montant de la commande, avec une référence unique.
  3. Le client reçoit une demande sur son téléphone et l’approuve avec son code secret MoMo. Votre site ne voit jamais le code secret.
  4. MTN met à jour le paiement en SUCCESSFUL ou FAILED.
  5. Votre serveur confirme ce résultat auprès de MTN, puis marque la commande comme payée et envoie la confirmation.

Dans la documentation développeur de MTN, cela correspond au produit Collections et à son opération request to pay. Tout dans ce guide découle d’une règle : la commande est payée quand MTN le dit, et non quand le navigateur du client revient sur une page de remerciement.

02

Ce qu’il vous faut avant d’écrire le code

Il vous fautD’où cela vient
Un compte développeurInscrivez-vous sur le portail développeur MTN MoMo.
Un abonnement au produitAbonnez-vous au produit Collections. Le portail vous donne une clé d’abonnement principale et une clé secondaire.
Un utilisateur API sandbox et une clé APICréés avec l’API de provisioning du sandbox, pour les tests uniquement.
Des identifiants de productionÉmis une fois que MTN a intégré l’entreprise pour les paiements en production. Demandez à MTN Rwanda ce que l’entreprise doit fournir.
Une adresse de callbackUne page sur votre propre domaine, servie en HTTPS, qui reçoit les résultats de paiement.
03

Testez d’abord dans le sandbox

Le sandbox vous permet de tester tout le processus sans argent réel. La documentation de MTN précise trois points utiles avant de commencer :

  • L’environnement cible pour les tests est sandbox. Les paiements en production utilisent l’environnement que MTN vous fournit pour le Rwanda.
  • La devise du sandbox est l’EUR. Les paiements en production au Rwanda se font en francs rwandais (RWF), donc assurez-vous que la devise soit un paramètre, et non une valeur codée en dur.
  • MTN publie des numéros de test qui renvoient des échecs précis, comme un compte introuvable ou un service indisponible. Tout autre numéro renvoie un succès.

Ce dernier point est important. Si vous testez seulement avec votre propre numéro, tous les paiements réussiront et les parcours d’échec ne seront jamais exécutés. Utilisez les numéros de test de MTN pour vérifier ce que le client voit quand un paiement échoue, et ce qui arrive à la commande.

04

Callbacks et vérifications de statut

Il existe deux façons de connaître le résultat d’un paiement. Votre serveur peut demander à MTN le statut d’une requête, ou MTN peut appeler votre adresse de callback lorsque le statut change. Pour recevoir un callback, la requête inclut votre URL de callback, et cette URL doit utiliser HTTPS.

La documentation de MTN est claire : le callback est envoyé une seule fois, sans nouvelle tentative si votre serveur le manque, et recommande de vérifier le statut comme solution de secours. Il faut donc construire les deux :

  • Écoutez le callback, mais considérez-le comme un signal de vérification, pas comme une preuve.
  • Demandez à MTN l’état du paiement avant de marquer la commande comme payée, et vérifiez que le montant et la référence correspondent à la commande.
  • Vérifiez les paiements qui restent en attente après quelques minutes, pour qu’un callback manqué ne laisse jamais un client payé attendre.
  • Traitez chaque référence une seule fois. Un callback répété ne doit pas créer une deuxième commande ni une deuxième livraison.

La checklist WooCommerce Mobile Money couvre les états de commande et les cas particuliers à tester avant le lancement.

05

Restez en sécurité

  • Conservez la clé API et la clé d’abonnement sur le serveur. Ne les mettez jamais dans le code du navigateur, dans un fichier de thème que tout le monde peut télécharger, ni dans un dépôt de code public.
  • Créez une nouvelle référence pour chaque tentative de paiement et enregistrez-la avec la commande.
  • Vérifiez le numéro de téléphone avant d’envoyer la requête. Les numéros MTN Rwanda commencent par 078 ou 079.
  • Journalisez chaque requête et chaque résultat sans stocker plus de données personnelles que nécessaire.
  • Affichez au client un message clair pendant que le paiement est en attente, ainsi qu’une option pour réessayer en cas d’échec.
06

Où Airtel Money s’intègre

Beaucoup de clients au Rwanda paient plutôt avec Airtel Money. Airtel a aussi son propre API développeur , avec une intégration et des identifiants séparés. Prendre en charge les deux réseaux signifie donc deux intégrations, ou un prestataire de paiement qui les regroupe. Comparez les trois options dans le tableau plugin, prestataire ou intégration sur mesure.

07

L’intégrer dans WordPress

Sur une boutique WooCommerce, une intégration de paiement est généralement un plugin. Triad a créé WeConfirm Pay, qui vérifie les paiements MTN MoMo et Airtel Money pour les boutiques WooCommerce, et crée des plugins WordPress sur mesure lorsqu’une boutique a besoin de son propre flux de paiement.

Si vous planifiez une boutique en ligne, commencez par le service ecommerce ou envoyez votre brief à Triad.

Pour aller plus loin

Documentation officielle derrière les conseils techniques de cet article.