API DIRECT CARRIER BILLING - (DCB) via OTP Version Date - LAfricaMobile

 
CONTINUER À LIRE
API DIRECT CARRIER BILLING - (DCB) via OTP Version Date - LAfricaMobile
REFERENCE : SUP.DEV.MAN.API.DCB.00
     DATE : 22/03/2022

    API DIRECT CARRIER BILLING
             (DCB) via OTP

Version    Date        Commentaire
1          22/03/2022 par MG
API DIRECT CARRIER BILLING - (DCB) via OTP Version Date - LAfricaMobile
SOMMAIRE
  1      Présentation .............................................................................................................. 3
  2      Portée ........................................................................................................................ 4
  3      Paramètres du compte ............................................................................................... 4
   3.1 Pré-requis............................................................................................................ 4
   3.2 Variables utilisées dans la documentation.......................................................... 5
  4 Envoyer SMS Code de confirmation ........................................................................ 5
         4.1.1    Comment envoyer via http ........................................................................ 5
         4.1.2    Comment envoyer via un code PHP ......................................................... 6
         4.1.3    Comment envoyer en JSON via un code PHP .......................................... 7
  5      Générer les paramètres challenges ......................................................................... 10
         5.1.1     Comment envoyer via http ...................................................................... 10
         5.1.2     Comment envoyer via un code PHP ....................................................... 11
         5.1.3     Comment envoyer en JSON via un code PHP ........................................ 12
  6      Facturer vos abonnés grâce au billing .................................................................... 14
         6.1.1    Comment envoyer via un code PHP ....................................................... 14
         6.1.2    Comment envoyer en JSON via un code PHP ........................................ 15
  7      Coversion MSISDN en alias ISE ........................................................................... 18
         7.1.1    Comment envoyer via un code PHP ....................................................... 18
         7.1.2    Comment envoyer en JSON via un code PHP ........................................ 19
  8      Réception de votre SMS MO.................................................................................. 20
  9      Envoyer SMS MT................................................................................................... 20
     9.1.1   Comment envoyer via http ...................................................................... 20
     9.1.2   Comment envoyer via un code PHP ....................................................... 21
     9.1.3   Comment envoyer en JSON via un code PHP ........................................ 22
  10 Réception d’accusé en temps réel .......................................................................... 23
  11     Liste des statuts DLR et significations .................................................................. 24
  12      Code opérateur Orange ......................................................................................... 25

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                                                                     2
1      Présentation
  Le DCB est utiliser pour faire du paiement, à partir du crédit téléphonique, de contenus
  digitaux comme (achat musique en ligne, Crowdfunding, jeux en ligne, jeux de pari en
  ligne, abonnement en ligne, Ecommerce …).

  Il peut être combiné avec l’USSD pour faciliter l’intégration à des utilisateurs non
  connectés.

  Le DCB est disponible dans tous les pays d'afrique avec l'opérateur ORANGE.

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                     3
2      Portée
  Le DCB via OTP est un proxy/API pour envoyer des SMS (OTP) de confirmation et faire
  la facturation à des numéros Orange abonnés à votre service, en utilisant une interface
  API.
  Le DCB via OTP propose deux interfaces :
  - via Web: l'utilisateur se connecte via un navigateur
  - via API: l'application du client échange des informations automatiquement avec la
  plateforme de LAfricaMobile

  Ce document décrit la seconde manière et explique comment utiliser cette API.

  3       Paramètres du compte
  3.1 Pré-requis

  Pour utiliser cette API, vous avez besoin d'un compte valide. Lors de la création de
  votre compte, LAfricaMobile doit vous donner:
  - un login (nommé aussi accountid)
  - un mot de passe
  Cette paire identifiant / mot de passe est utilisée comme paramètre d’identification
  dans l'API.

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                    4
3.2 Variables utilisées dans la documentation

       Dans ce document, nous utilisons des valeurs ci-dessous. Les vraies valeurs vous
       seront données par notre équipe technique ou par votre propre configuration (pour les
       paramètres dépendant de votre côté, ret_url par exemple). Certaines d’entre elles
       peuvent ne pas être utilisées en fonction de vos besoins.
       Valeurs d’essai du document:
        -   login=fred
        -   password=xpasswordx
        -   message = Veuillez_utiliser_le_code_suivant
        -   telephone = 221773758085
        -   sendername = LAM
        -   DCB via OTP base URL : https://mtpremium-prod.lafricamobile.com

       Vous devez remplacer ces valeurs par vos propres paramètres pendant vos tests.

       4      Envoyer SMS Code de confirmation
       4.1.1 Comment envoyer via http

       Au lieu d'avoir tous les paramètres encapsulés, vous pouvez directement effectué un
       GET paramètres individuellement :
       Les paramètres sont :
Nom           Mandatory Valeur test                                                         Comment
login         Y               fred                                                          Value
                                                                                            given      by
                                                                                            LAM
password      Y               xpasswordx                                                    Value
                                                                                            given      by
                                                                                            LAM
message       Y               Veuillez_utiliser_le_code_suivant_pour_confimer_votre_achat_: Contenu à
                                                                                            envoyer
sendername Y                  SMS                                                            Mot       clé
                                                                                            (SMS) qui
                                                                                            s’affiche
                                                                                            sur         le
                                                                                            message
telephone     Y               221773758085                                                  Numéro
                                                                                            téléphone
                                                                                            de
                                                                                            l’utilisateur

    © 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                      5
Donc, vous pouvez faire un appel directement dans votre navigateur :1

  https://mtpremium-prod.lafricamobile.com/callotp?login=fred&password= xpasswordx
  &sendername=LAM&message=Veuillez_utiliser_le_code_suivant_pour_confirmer_votre_achat_:&t
  elephone=221773758085

  4.1.2 Comment envoyer via un code PHP
  Voici un exemple avec le script PHP

  1
      Veuillez mettre le signe + devant l’indicatif du numéro de téléphone

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                     6
4.1.3 Comment envoyer en JSON via un code PHP
  Voici un exemple avec le script PHP

  REPONSE OK

  Content-Type: application/json

  {"url":"/challenge/v1/challenges/5e6773517970f8095fb99d15"}

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                  7
L’API générera un url /challenge/v1/challenges/5e6773517970f8095fb99d15
   et un SMS avec un code de confirmation 9095 qu’on utilisera pour facturer les
                                     abonnés

  ERREUR LOGIN OU MOT DE PASSE

      • Login ou Mot de passe incorrect

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                           8
LISTE DES CODES D’ERREUR COURANTS

                                                                                               response
  HTTP status code reason                                                                      model

   400                List of error codes:                                                 •   model
                      - SVC0001: A service error occurred
                                                                                           •   model
                      - SVC0002: Invalid input value for message part
                                                                                               schema
                      - SVC0003: Invalid input value for message part
                      - SVC0004: No valid addresses provided for message part
                      - SVC0280: Message too long

   403                List of error codes:                                                 •   model
                      - POL0001: A policy error occurred
                                                                                           •   model
                      - POL0003: Too many addresses specified in message part
                                                                                               schema
                      - POL0007: Nested groups specified in message part not allowed

   404                List of error codes:                                                 •   model
                      - POL0010: Requested information unavailable as the retention time
                                                                                           •   model
                      interval has expired
                                                                                               schema

   406                List of error codes:                                                 •   model
                      - POL0011: Media type not supported
                                                                                           •   model
                                                                                               schema

   503                List of error codes:                                                 1. model
                      - SVC1000: No resources This exception is thrown if there are no     2. model
                      server resources available to process the request                       schema

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                                9
5     Générer les paramètres challenges
  Pour facturer un abonné vous aurait besoins d’un alias appelé ise2 qu’on générera
  grace à l’url et au code de vérification.

  5.1.1 Comment envoyer via http

  Au lieu d'avoir tous les paramètres encapsulés, vous pouvez directement effectué un
  GET paramètres individuellement :

  Les paramètres sont :
  Nom        Mandatory Valeur test                                      Comment
  login      Y                            fred                          Value given by LAM
  password Y                          xpasswordx                        Value given by LAM
  code       Y                           9095                           Code reçu par l’abonné
  url        Y          /challenge/v1/challenges/5e6773517970f          url reçu plus haut
                        8095fb99d15
  telephone Y                        221773758085                       Numéro        téléphone   de
                                                                        l’utilisateur

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                 10
Donc, vous pouvez faire un appel directement dans votre navigateur :2

  https://mtpremium-prod.lafricamobile.com/callchallenge?login=fred&password= xpasswordx
  &code=9095&url=/challenge/v1/challenges/5e6773517970f8095fb99d15telephone=221773758085

  5.1.2 Comment envoyer via un code PHP
  Voici un exemple avec le script PHP

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                   11
5.1.3 Comment envoyer en JSON via un code PHP
  Voici un exemple avec le script PHP

  REPONSE OK

  Content-Type: application/json

  {"challenge":{"method":"OTP-SMS-
  AUTH","result":[{"type":"OrangeApiToken","value":"B640Z45OYjdYK7oZ310
  "},{"type":"ise2","value":"PDKSUB-200-
  Ibfbl9J+xxxxxxxxxxxxx="}],"country":"SEN","service":"LAFRICAMOBILE","p
  artnerId":"PDKSUB","inputs":[{"type":"MSISDN","value":"+221773758085"},{
  "type":"info","value":"OrangeApiToken,ise2"},{"type":"message","value":"test
  test test OTP is %OTP% "},{"type":"confirmationCode","value":"9095"}]}}

  L’API générera le ise2 PDKSUB-200-Ibfbl9J+xxxxxxxxxxxxx= qu’on utilisera pour
  facturer l’abonné
  ERREUR LOGIN OU MOT DE PASSE

       • Login ou Mot de passe incorrect

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                               12
LISTE DES CODES D’ERREUR COURANTS

                                                                                               response
  HTTP status code reason                                                                      model

   400                List of error codes:                                                 •   model
                      - SVC0001: A service error occurred
                                                                                           •   model
                      - SVC0002: Invalid input value for message part
                                                                                               schema
                      - SVC0003: Invalid input value for message part
                      - SVC0004: No valid addresses provided for message part
                      - SVC0280: Message too long

   403                List of error codes:                                                 •   model
                      - POL0001: A policy error occurred
                                                                                           •   model
                      - POL0003: Too many addresses specified in message part
                                                                                               schema
                      - POL0007: Nested groups specified in message part not allowed

   404                List of error codes:                                                 •   model
                      - POL0010: Requested information unavailable as the retention time
                                                                                           •   model
                      interval has expired
                                                                                               schema

   406                List of error codes:                                                 •   model
                      - POL0011: Media type not supported
                                                                                           •   model
                                                                                               schema

   503                List of error codes:                                                 3. model
                      - SVC1000: No resources This exception is thrown if there are no     4. model
                      server resources available to process the request                       schema

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                               13
6       Facturer vos abonnés grâce au billing

  6.1.1 Comment envoyer via un code PHP
  Les paramètres sont :

  Nom                  Mandatory       Valeur test                Comment
  login                Y               fred                       Value given by LAM
  password             Y               xpasswordx                 Value given by LAM
  amount               Y               100.0                       Valeur en CFA à prélever
  clientise            Y               PDKSUB-200-                Ise de l’abonné généré
                                       Ibfbl9J+xxxxxxxxxxxxx=
  operateur        Y                   OSN                    Code opérateur
  clientCorrelator Y                   12345                       Identifiant unique de la
                                                                  requête

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                      14
6.1.2 Comment envoyer en JSON via un code PHP
  Voici un exemple avec le script PHP

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                15
REPONSE OK

  Content-Type: application/json

  {
      "amountTransaction": {
           "endUserId": "acr: X-Orange-ISE2",
           "paymentAmount": {
                "chargingInformation": {
                     "description": "AVATAR",
                     "currency": "XOF",
                     "amount": 100.0
                },
                "totalAmountCharged": 100.0,
                "chargingMetaData": {
                     "onBehalfOf": "TopEleven",
                     "purchaseCategoryCode": "Game",
                     "taxAmount": 0.1,
                     "serviceId": "LAFRICAMOBILE"
                }
           },
           "transactionOperationStatus": "Charged",
           "referenceCode": "REF-12345",
           "serverReferenceCode": "f9b72bd8-8eba-4c25-a557-2219cb8c26a2",
           "clientCorrelator": "12345",
           "resourceURL":"f9b72bd8-8eba-4c25-a557-2219cb8c26a2"
      }
  }

  ERREUR LOGIN OU MOT DE PASSE

          • Login ou Mot de passe incorrect

  LISTE DES CODES D’ERREUR COURANTS

          1.     List of service exceptions for Payment

  ErrorCode           Exception Text                              Variables   Response code

  SVC0007             Invalid charging information                None        400 Bad Request

  SVC0270             Charging operation failed, the charge was   None                   400 d Request
                      not applied

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                                 16
2.   List of policy exceptions for Payment

  ErrorCode   Exception Text                                       Variables                                 Response
                                                                                                             Code

  POL0253     Payment operation refused by user                    None                                      403
                                                                                                             Forbidden

  POL0254     The amount exceeds the operator limit for a          None                                      403
              single charge                                                                                  Forbidden

  POL1000     User has insufficient credit for transaction         None                                      403
                                                                                                             Forbidden

  POL1001     The %1 operator charging limit for this user         %1 – the time period for which            403
              has been exceeded                                    the    charging    limit   has   been     Forbidden
                                                                   reached,    e.g.     hourly,     daily,
                                                                   weekly, monthly.

  POL1002     The charge happened too soon after the               None                                      403
              previous one                                                                                   Forbidden

  POL1004     Refund below minimum refundable amount               %1 – the minimum refundable               403
              supported %1                                         amount supported                          Forbidden

  POL1005     A     refund      request        requires      the   None                                      403
              originalServerReferenceCode for the charge                                                     Forbidden
              that is being refunded

  POL1006     originalServerReferenceCode not valid                None                                      403
                                                                                                             Forbidden

              Inconsistent transaction                             None                                      400       Bad
  POL2010                                                                                                    Request

  POL2011     Transaction expired or invalid                       None                                      400       Bad
                                                                                                             Request

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                                                     17
7       Conversion MSISDN en alias ISE

  7.1.1 Comment envoyer via un code PHP

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE        18
7.1.2 Comment envoyer en JSON via un code PHP
8       Réception de votre SMS MO

  Pour recevoir les sms envoyés sur le mot clé FOOT le client devra fournir à
  LAFRICAMOBILE un URL du type http://[URL_PARTNER] où lui seront envoyés les
  paramètres du message via GET

  Paramètres transmises à URL_PARTNER sont :

  Nom            METHOD       Mandatory Valeur test          Comment
  messageid        GET        Y         123456               Identifiant unique du client
  message          GET        Y         FOOT                 Mot clé du client Contenu du message
                                                             envoyé
  clienttoken       GET       Y              B64LAQZWGv      Le Token
  clientise         GET       Y              PDKSUB-200-Ib   L’ISE permet d’envoyer des SMS et de
                                                             facturer l’abonné

  9       Envoyer SMS MT

  9.1.1 Comment envoyer via http

  Au lieu d'avoir tous les paramètres encapsulés, vous pouvez directement effectué un
  GET paramètres individuellement :

  Les paramètres sont :
  Nom             Mandatory          Valeur test   Comment
  login           Y                  Fred          Value given by LAM
  password        Y                  xpasswordx    Value given by LAM
  message         Y                  Hello%20World Contenu à envoyer
  sendername      Y                  FOOT           Mot clé (FOOT) qui s’affiche sur le
                                                   message
  clientise          Y               PDKSUB-200-Ib ISE de l’abonné généré ou reçu sur le
                                                   SMS MO
  callbackdata       Y                    12345    Identifiant unique du message à
                                                   envoyé

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                20
Donc, vous pouvez faire un appel directement dans votre navigateur :3

  https://mtpremium-prod.lafricamobile.com/api?login=fred&password= xpasswordx
  &sendername=FOOT&clientise=PDKSUB-200-Ib&message=Bonjour ceci est un autre
  test&callbackdata=12345

  9.1.2 Comment envoyer via un code PHP
  Voici un exemple avec le script PHP

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                         21
9.1.3 Comment envoyer en JSON via un code PHP
  Voici un exemple avec le script PHP

  REPONSE OK

  Content-Type: application/json

  {"outboundSMSMessageRequest": {
    "address": "acr:X-Orange-ISE2",
    "senderAddress": "tel:+26261",
    "senderName": "FOOT",
    "outboundSMSTextMessage": {"message": "Bonjour ceci est un autre test"},
    "clientCorrelator": "12345",
    "resourceURL": " fdkqk69jjs34"
  }}

  ERREUR LOGIN OU MOT DE PASSE

       • Login ou Mot de passe incorrect

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                           22
LISTE DES CODES D’ERREUR COURANTS

                                                                                               response
  HTTP status code reason                                                                      model

   400                List of error codes:                                                 •   model
                      - SVC0001: A service error occurred
                                                                                           •   model
                      - SVC0002: Invalid input value for message part
                                                                                               schema
                      - SVC0003: Invalid input value for message part
                      - SVC0004: No valid addresses provided for message part
                      - SVC0280: Message too long

   403                List of error codes:                                                 •   model
                      - POL0001: A policy error occurred
                                                                                           •   model
                      - POL0003: Too many addresses specified in message part
                                                                                               schema
                      - POL0007: Nested groups specified in message part not allowed

   404                List of error codes:                                                 •   model
                      - POL0010: Requested information unavailable as the retention time
                                                                                           •   model
                      interval has expired
                                                                                               schema

   406                List of error codes:                                                 •   model
                      - POL0011: Media type not supported
                                                                                           •   model
                                                                                               schema

   503                List of error codes:                                                 5. model
                      - SVC1000: No resources This exception is thrown if there are no     6. model
                      server resources available to process the request                       schema

  10 Réception d’accusé en temps réel

  Il existe deux manières de suivre le routage SMS:
  - votre serveur est informé par la passerelle lorsque le statut change ou bien
  - vous pouvez demander à notre serveur le statut SMS.
  Le premier moyen est bien meilleur, car il est en temps réel et ne charge pas la plate-
  forme avec des appels inutiles.
  La seconde ne doit être utilisée que exceptionnelement au risque de surcharger le
  serveur.

  Dans ce cas, notre serveur appelle une URL, quand il détecte que le statut a changé.

  Pour recevoir le DELIVERY NOTIFICATION(DLR) le client devra founir une url où les
  paramètres seront transmis.

  Pour le DLR, l’url du client sera enrichi via GET en urlencoded ou POST en JSON comme
  suit :

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                               23
GET
  http://[PARTNER_URL]?telephone=221773275745&callbackdata=fdkqk69jjs34&deliverys
  tatus=DeliveredToTerminal

  POST http://[PARTNER_URL]

  {"telephone" : "221773275745","callbackdata" :"fdkqk69jjs34","deliverystatus" :
  "DeliveredToTerminal" }

  NB : le callbackdata de l’accusé de réception correspond au resourceURL reçu sur la
  réponse du SMS MT

  11 Liste des statuts DLR et significations
   -   DeliveredToTerminal : SMS reçu par l’utilisateur
   -   DeliveredToNetwork : SMS reçu par le réseau
   -   DeliveryUncertain : SMS par sûre d’être reçu par l’utilisateur
   -   DeliveryImpossible : Impossible de transmettre le SMS à l’utilisateur
   -   MessageWaiting : SMS en attente reception
   -   DeliveryNotificationNotSupported : Impossible de notifier la reception du SMS

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                                24
12         Code opérateur Orange

  Country                                 Code             ISO3   Currency
  Botswana                                OBW              BWA
  Burkina Faso                            OBF              BFA
  Cameroun                                OCM              CMR
  Centre Afrique                          OCF              CAF
  Côté d'Ivoire                           OCI              CIV
  Democratic Republic of Congo            ODC              COD
  Guinée Bissau (OGW)                     OGW              GNB
  Guinée Conakry (OGN)                    OGC              GIN
  Jordan                                  OJO              JOR
  Liberia                                 OLR              LBR
  Madagascar (OMG)                        OMG              MDG
  Mali (OML)                              OML              MLI
  Maroc (OMA)                             OMA              MAR
  Niger (ONE)                             ONE              NER
  Senegal (OSN)                           OSN              SEN
  Sierra Leone (OSL)                      OSL              SLE
  Tunisia (OTN)                           OTN              TUN

© 2020-LAFRICAMOBILE – APPLICATION PROGRAMMING INTERFACE                     25
Vous pouvez aussi lire