Orange Money est devenu la plateforme de paiement électronique leader au Cameroun et dans une bonne partie de l’Afrique francophone.

Mais gérer les encaissements OM (Orange Money) manuellement peut devenir très laborieux lorsque des dizaines / centaines de transactions par jour sont effectués pour acheter vos produits.

Pour répondre à ce besoin Orange Money a donc mis à disposition du public des API de WebPayment permettant d’encaisser des paiement Orange Money sur le web et sur les applications mobiles. 

Nous avons accompagné des centaines de eCommerçant pour l’implémentation de l’API Orange Money sur leur site web.
Cette API de WebPaiement est assez classique dans son fonctionnement; nous vous accompagnons ici étape par étape dans son implémentation. Afin de vous permettre d’adapter notre explication à votre langage de programmation, vous trouverez les exemples PostMan a la fin de cet article.

 Pour implémenter le paiement par Orange Money sur votre site ou votre application mobile , vous devrez avoir à votre disposition de 2 informations principales :

– le Bearer

– le Merchant Key

Ces deux informations sous fournies par votre agrégateur WebPaiement Orange Money. Si vous n’avez pas de contrat Orange Money , n’hésitez pas à nous contacter.

 

Etape 1: Access Token Bearer
La première étape dans l’implémentation de votre API de WebPaiement Orange est la récupération de l’Access Token.

L’access Token est le jeton d’authentification auprès de l’API, c’est grâce à ce jeton que vous serez autorisé à génerer un lien de paiement avec toutes les informations nécessaires.

Une requête POST doit être faite sur l’URL suivante : https://api.orange.com/oauth/v3/token

Cette requête intégre un header avec un élément d’authentification : Authorization Header fournit avec vos accés.

1
2
3
4
curl --location --request POST 'https://api.orange.com/oauth/v3/token'
--header 'Authorization: Basic VotreAuthorizationHeader' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials'\

La réponse a cette requête est un element en JSON comprenant votre Access Token Bearer

1
2
3
4
5
{
"token_type": "Bearer",
"access_token":"iiWTF982UT6K9K0Kf0fEaWQFRf4K",
"expires_in": "7776000"
}

 

Le paramêtre a récupérer pour la suite de nos opérations est « access_token« . Son délai d’expiration est précisé dans la paramêtre « expires_in« .
Etape 2: Génération de l'URL de Paiement

Maintenant que nous avons récupéré le bearer d’authentification nous allons pouvoir faire la requête de paiement à proprement parler.

URL de la requete (Production) : https://api.orange.com/orange-money-webpay/cm/v1/webpayment

Si vous utilisez la SandBox, veillez bien a utiliser l’URL de développement https://api.orange.com/orange-money-webpay/dev/v1/webpayment

Paramêtre à passer (POST) :

  • merchant_key :  Fournis à la création de l’API
  • currency : XAF (pour l’afrique Central)
  • amount : Montant en devise
  • lang : Langue a utiliser sur la page de paiement. ex « fr »
  • order_id: le numéro de commande client (ex : Order12345). Cet élément doit être unique
  • reference :  Information pour le client sur la page de paiement (ex: « Y-Note – Paiement Service ABC »)
  • return_url : Adresse de retour sur votre site web. Lorsque l’utilisateur a procéder a son paiement il sera renvoyé sur cette page  (exemple « https://www.y-note.cm/return »)
  • cancel_url : Adresse d’annulation. lorsque le client annule sa transaction il est renvoyé sur cette page ( ex: »https://www.y-note.cm/cancel »)
  • notif_url : Adresse de notification . Après le paiement, une notification est envoyé par le serveur Orange Money sur cette adresse pour vous donner le statut de paiement (ex: « https://www.y-note.cm/notification »)

Cette requête vous renverra ainsi un résultat comme celui-ci :

1
2
3
4
5
6
7
{
"status": 201,
"message": "OK",
"pay_token": "v1m7ntxzlukhlfj3k0pdsfhmarekfwwj3unstmmplwulegmkafztsby7rptb6cge",
"payment_url": "https://webpayment.orange-money.com/cm/mpayment/abstract/v1m7ntxzlukhlfjfdsffdsgfgfa3k0pdsfhmarekfwwdaj3unstmmplwulegmkafztsby7rptb6cge",
"notif_token": "i5060um9fkxnl5gcgjxposhsisxmp8si"
}

L’élément param_url représente l’adresse sur laquelle renvoyer votre utilisateur.

Le notif_token est éléments important à stocker pour le comparer avec la valeur présente lors de la réception de la requête de notification afin de s’assurer que les éléments renvoyé par le présumé serveur Orange Money sont effectivement conformes avec ceux envoyés.

Une fois redirigé votre utilisateur arrive ainsi sur une page de ce type :

Etape 3: Traitement de la notification
Vous avez maintenant envoyé vos clients sur votre page de paiement personnalisé Orange Money.

Vous êtes donc maintenant capable d’encaisser les paiements de vos clients par Orange Money 24h/24 et 7j/7 tout en bénéficiant des avantages des comptes marchand Orange Money (Transactions illimités, aucune limite de montant dans votre compte , possibilité de consulter votre historique de transaction , etc…)

Néanmoins, il est nécessaire pour votre site eCommerce / application mobile d‘être alerté lorsqu’un client effectue réellement son paiement.

Pour cela, vous devez écouter les notifications envoyés par le serveur Orange Money, après chaque paiements effectués sur la plateforme (ou chaque erreur sur une tentative de paiement) une notification est envoyée par le serveur Orange Money sur l’adresse de notification fournie dans la méthode de paiement (le paramêtre « notif_url »)

La méthode de récupération de la notification dépend largement du langage côté serveur utilisé pour récupérer l’appel à cette page.

Il est néanmoins à noter que cet appel doit être récupéré en POST.
En PHP vous devrez lire le flux d’entrée arrivant sur cette page à travers  php://input , en utilisant particulièrement une directive de ce type :

1
file_get_contents('php://input')

La requête de notification a cette forme :

1
2
3
4
5
{
"status":"SUCCESS",
"notif_token":"dd497bda3b250e536186fc0663f32f40",
"txnid": "MP150709.1341.A00073"
}

Le status est assez explicite, le notif_token correspond à ce qui a été transmis lors de la génération du lien de paiement.
Il est judicieux de stocker le champ « txnid » qui est le numéro de transaction fournit au client par SMS lors de son paiement.


Et voila , vous avez maintenant implémenté l’API WebPaiement Orange Money vous permettant d’encaisser les paiements de vos produits et services sur application mobile.

Cette API Orange Money est valable au Cameroun et dans 7 autres pays africains :  Mali, Senegal, Madagascar, Botswana, Guinea Conakry et Cote d’Ivoire.

Vous avez un site eCommerce ? Vous vendez des biens et des services et vous souhaitez encaissez par Orange Money au Cameroun

Y-Note est Agrégateur Orange Money Cameroun officiel depuis 2018. Accompagnant des centaines de eCommerçant au Cameroun, nous proposons la mise en place de solution d’encaissement Orange Money directement sur votre site web ou au sein de votre application mobile.

 

Intéressé ?

Vous souhaitez mettre en place Orange Money sur votre site web ? Vous souhaitez proposez des encaissements Orange Money à vos clients sur votre application mobile ?