Dans le tutoriel précédent, nous avons expliqué comment effectuer des encaissements par Orange Money, ceci en fournissant des URLs de paiement au client (API WebPaiement Orange Money Groupe). Orange Money Cameroun met à la disposition des utilisateurs une autre méthode de paiement : API Webpaiement Orange Money USSD; celle-ci consiste à lancer directement une requête sur le numéro de l’internaute en lui demandant d’entrer uniquement son PIN Orange Money sur son device via l’USSD pour procéder au règlement.
L’utilisateur peut aussi procéder au règlement a l’aide de son code secret uniquement en tapant #150*50#.
Le présent article décrit la démarche à suivre en tant que développeur (ou non) pour pouvoir réaliser ce genre d’opération. Top c’est parti…
Pour intégrer cette API , vous devez avoir à votre disposition les informations suivantes :
- le username
- le password
- le X-AUTH-TOKEN
- le ChannelUserMsisdn
- Et enfin le pin
Ces 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: Récupération de l'access token
L’Access Token est un jeton d’authentification récupéré auprès de l’API, ce qui nous permettra d’initier le paiement. l’URL à utiliser est la suivante : https://api-s1.orange.cm/token
Cette requête doit comporter un header contenant les paramètres:
- Conten-Type:application/x-www-form-urlencoded
- Authorization: elle doit avoir comme valeur votre login:votre_mot_de_passe encodé en base64
La requête CURL est la suivante:
1 2 3 4 5 | curl --location --request POST<br /> --header 'Content-Type: application/x-www-form-urlencoded'<br /> --header 'Authorization: Basic base64(login:mot_de_passe)'<br /> --data-urlencode 'grant_type=client_credentials'<br /> 'https://api-s1.orange.cm/token' -k |
La réponse a cette requête est un element en JSON comprenant votre Access Token Bearer:
1 2 3 4 5 6 | {<br /> "access_token":"e7d49fcb-de94-35ab-841a-92b864be122b",<br /> "scope":"am_application_scope default",<br /> "token_type":"Bearer",<br /> "expires_in":3600<br /> } |
Le paramètre à 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 » et exprimé en secondes.
Etape 2: Initialisation du Paiement
Après avoir récupéré le jeton d’authentification, la prochaine étape consiste a initialiser le paiement.
Pour ce faire, il faut faire un POST sur l’URL: https://api-s1.orange.cm/omcoreapis/1.0.2/mp/init
les paramètres a fournir sont:
- X-AUTH-TOKEN : Ce paramètre vous a été envoyé après votre souscription
- Authorization : De type bearer, la valeur de ce paramètre a été récupéré dans la première étape, il doit être passé dans le header
La requête CURL est la suivante:
1 2 3 4 | curl --location --request POST<br /> --header 'X-AUTH-TOKEN: XXXXXXXXXXXX'<br /> --header 'Authorization: Bearer jeton_récupéré'<br /> 'https://api-s1.orange.cm/omcoreapis/1.0.2/mp/init' -k |
Cette requête vous renverra ainsi un résultat comme celui-ci :
1 2 3 4 | {<br /> "message":"Payment request successfully initiated",<br /> "data":{"payToken":"MP221228E04D51BA925E23BE308C"}<br /> } |
L’élément data contient un paramètre payToken qui représente le jeton permettant d’effectuer le paiement final.
Etape 3: Requête de paiement
La prochaine étape est la requête de paiement, celle qui permet a l’utilisateur de recevoir la notification et procéder au paiement. Pour ce faire il faudra faire un POST sur l’URL: https://api-s1.orange.cm/omcoreapis/1.0.2/mp/pay Cette requête nécessite:
- un access_token: De type bearer, celui qui peut être récupéré a tout moment a l’étape 1
- le X-AUTH-TOKEN: Le meme qui a été communiqué lors de la souscription
- ensuite le corp ou body en Json qui se présente comme suit:
{“notifUrl“:“https://www.ynote.cm/notification“,“channelUserMsisdn“:“6XXXXXXXXXX“,“amount“:“1“,“subscriberMsisdn“:“6XXXXXXXXXX“,“pin“:“XXXX“,“orderId“:“order1234“,“description“:“Commande 12345“,“payToken“:“MP2101286BFF6E35D25DFCFD3BA2“}
Explication des paramètres du body:
- notifUrl : l’URL de notification sur l’état de la transaction
- channelUserMsisdn: le numéro marchand qui sera également fourni lors de la transaction
- amount: Le montant de la transaction, les virgules ne sont pas autorisées
- subscriberMsisdn: le numéro du payeur, l’indicatif n’est pas autorisé. Exemple de numéro valide: 692954629
- pin : le pin (sera également communiqué)
- orderId: le numéro de commande associé
- description: la description
- payToken: Le paytoken récupéré a l’étape 2
La réponse a de l’API est la suivante:
{
“message“: “Merchant payment successfully initiated“, “data“: {
“id“: 51696332,
“createtime“: “1672238140“,
“subscriberMsisdn“: “69xxxxxx“,
“amount“: 1,
“payToken“: “MP22122828061160596F8A461518“,
“txnid“: “MP221228.1536.A13810“,
“txnmode“: “order1234“,
“inittxnmessage“: “Paiement e la clientele done.The devrez confirmer le paiement en saisissant son code PIN et vous recevrez alors un SMS. Merci dutiliser des services Orange Money.“,
“inittxnstatus“: “200“,
“confirmtxnstatus“: null,
“confirmtxnmessage“: null,
“status“: “PENDING“,
“notifUrl“: “https://www.y-note.cm/notification“,
“description“: “Commande 12345“,
“channelUserMsisdn“: “69xxxxxx“}}
1 |
Vérification du statut des transactions
Afin d’être à jour le statut d’une transaction, vous pouvez a tout moment faire un GET sur l’URL: https://api-s1.orange.cm/omcoreapis/1.0.2/mp/paymentstatus/PAYTOKEN. Il faut remplacer le mot PAYTOKEN par le paytoken de la transaction dont vous voulez récupérer le statut ceci en récupérant d’abord un jeton d’authentification à l’étape 1, puis en faisant en GET tout en précisant:
- le X-AUTH-TOKEN communiqué lors de la souscription
- l’authorization: de type bearer contenant le jeton que vous venez de récupérer
- le Content-Type qui a pour valeur application/json
La requête CURL correspondante est la suivante:
1 2 3 4 5 | curl --location --request GET 'https://apis1.orange.cm/omcoreapis/1.0.2/mp/paymentstatus/MP210127EA8F73AD6A8A54B7BF14' --header 'X-AUTH-TOKEN: XXXXXXXXXX=' --header 'Authorization: Bearer f68f3e0a-888b-375f-9d0c-693a1191a3e8' --data-raw '' |
Exemple de réponse de l’API:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | { "message": "Transaction retrieved successfully" "data": { "id": 51662559, "createtime": "1672227722", "subscriberMsisdn": null, "amount": null, "payToken": "MPXXXXXXXXXX", "txnid": xxxxxxx, "txnmode": xxxxxxx, "inittxnmessage" xxxxxxx, "inittxnstatus": xxxxxxx, "confirmtxnstatus": xxxxxxx, "confirmtxnmessage": xxxxxxx, "status" "SUCCESSFULL", "notifUrl": xxxxxxx, "description": xxxxxxx, "channelUserMsisdn": xxxxxxx } } |
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 permet de bénéficier d’une souplesse dans les encaissements inégalé, votre client peut ainsi payer sans OTP , sans passer par un site web , mais uniquement a travers un appel de fond sur son téléphone qu’il confirme avec son code OM habituel.
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 ?
Bonjour j’aimerai ms utiliser votre api pour intégrer dans une plateforme web développer avec Django, aviez vous un tuto la dessus, aider moi
Bonjour SOME .Nous somme disposé a vous accompagner dans l’obtention et et la misse a place des API orange money sur votre site web/application.
https://www.y-note.cm/api-orange-money-une-solution-de-paiement-securise/
Vous pouvez nous joindre via whatsapp au 693430798 ou nous écrire par mail [email protected]
Bonsoir a vous S’il vous plait est que
le username
le password
ce sont les informations de connexion au compte mi.ynote ?
pouvez-vous me donner plus de detail
car j’ai mit les meme informations du compte de connection
mais ca me renvois l’erreur suivante :
{‘error_description’: ‘A valid OAuth client could not be found for client_id: PIALOA TECH’, ‘error’: ‘invalid_client’}
Bonjour Monsieur
Nous somme disponible par mail [email protected] , appel au +237 242 232 240 poste 6054 et par WhatsApp +237 693 430 798 pour un support plus adapté
Bonjour !
Faites-vous des integrations dans des application Low Code (Exemple : Flutterflow (Flutter))?
Bonjour Monsieur
Nous somme disponible par mail [email protected] , appel au
+237 242 232 240 poste 6054 et par WhatsApp +237 693 430 798 pour un support plus adapté
Bonsoir comment faire pour intégrer l’API local / USSD Orange Money sur un application en java. Ou puis je trouver des exemples de codes ?.
Bonjour monsieur,
Deja vous devez disposer des clés de cette API et la documentation d’intégration ( cette document est disponible sur notre site web).
Toute fois Y-NOTE est agrégateur officiel de ses moyens de paiement et peut vous accompagner pour l’obtention des ses API auprès d’orange et MTN CMR.
Nous somme disponible par mail [email protected] , appel au
+237 242 232 240 poste 6054 et par WhatsApp +237 693 430 798 pour un support plus adapté