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 customer secret
  • le customer Key
  • le XAUTH
  • le numéro marchand
  • 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
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'Authorization: Basic base64(login:mot_de_passe)'
--data-urlencode 'grant_type=client_credentials'
'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
{
"access_token":"e7d49fcb-de94-35ab-841a-92b864be122b",
"scope":"am_application_scope default",
"token_type":"Bearer",
"expires_in":3600
}

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
--header 'X-AUTH-TOKEN: XXXXXXXXXXXX'
--header 'Authorization: Bearer jeton_récupéré'
 '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
{
"message":"Payment request successfully initiated",
"data":{"payToken":"MP221228E04D51BA925E23BE308C"}
}

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:
1
2
3
4
5
6
7
8
9
10
{
 "notifUrl": "https://www.y-note.cm/notification",
 "channelUserMsisdn": "6XXXXXXXXXX",
"amount": "1",
"subscriberMsisdn": "6XXXXXXXX",
"pin": "XXXX",
"orderId": "commande1234",
"description": "Commande 12345",
"payToken": "MP2101286BFF6E35D25DFCFD3BA2"
}

Explication des paramètres du body:

  1. notifUrl : l’URL de notification sur l’état de la transaction
  2. channelUserMsisdn: le numéro marchand qui sera également fourni lors de la transaction
  3. amount: Le montant de la transaction, les virgules ne sont pas autorisées, l’indicatif également n’est pas autorisé. Exemple de numéros valides: 692954629, 237692954629
  4. subscriberMsisdn: le numéro du payeur
  5. pin : le pin (sera également communiqué)
  6. orderId: le numéro de commande associé
  7. description: la description
  8. payToken: Le paytoken récupéré a l’étape 2

La réponse a de l’API est la suivante:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"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"
 }
}
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 ?