Sunteți pe pagina 1din 18

AByster SDP : Manuel d’intégration de la solution de paiement

API Version 2.1

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 1
Version Date Emetteur Commentaires

2.0 01/04/2015 Chris KAMTA Documentation initiale

2.1 16/03/2017 Chris KAMTA  Ajout intégration dans une application mobile
 Ajout intégration dans une boutique prestashop
 Ajout du simulateur Mobile Money

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 2
Table des matières
01. Objet ........................................................................................................................................... 4
02. Définitions ................................................................................................................................. 4
03. Introduction ............................................................................................................................... 4
04. Environnements ........................................................................................................................ 5
05. Services ...................................................................................................................................... 5
06. Prérequis à l’utilisation de l’API : Création d’un compte AByster Entreprise ...................... 5
07. Intégration ................................................................................................................................. 6
07.1 Entêtes HTTP ....................................................................................................................................... 6
a. Paramètres de l’entête Authorization .................................................................................................. 6
b. Calcul du consummerToken : ............................................................................................................. 7
07.2 Intégration dans un site web ou une application web ....................................................................... 7
a. Service de paiement ............................................................................................................................ 7
b. Service de vérification du statut du paiement d’une commande ....................................................... 11
c. Notification du marchand sur l’url de redirection ............................................................................. 12
07.3 Intégration dans une application mobile Android .......................................................................... 13
a. Scénario du paiement ........................................................................................................................... 13
b. Outils .................................................................................................................................................... 13
07.4 Intégration dans une boutique prestashop ...................................................................................... 14
a. Configuration du module...................................................................................................................... 14
b. Paiement sur le site............................................................................................................................... 14
07.5 Simulateur Mobile Money ................................................................................................................ 16
08. Architecture globale .............................................................................................................. 17
09. Liens et ressources .................................................................................................................. 18

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 3
01. Objet
Le présent document a pour objet de présenter la version 2.0 de l’API AByster. Il donne aux web
masters et développeurs des informations utiles pour une intégration aisée de l’API de paiement
Mobile Money AByster dans des applications Android, des sites et applications web.
Le présent document fait partie intégrante des ressources soumises aux CGU (Conditions
Générales d’Utilisation) du service AByster.

02. Définitions
Termes Signification
AByster désigne la société AByster.

API Application Programming Interface

CGU Conditions Générales d’Utilisation

MoMo Mobile Money

URI Uniform Resource Identifier

URL Uniform Resource Location


JSON Javascript Object Notation
${ABYSTERURL} sandbox-abyster.appspot.com ou www.abyster.com

03. Introduction
AByster fournit des composants prêts à l’emploi permettant de gérer les appels depuis une
application mobile, un site ou application web vers la plateforme de paiement AByster.
AByster innove avec la version 2.0 de son API. En effet cette nouvelle version contrairement aux
précédentes (versions 1.0 et 1.0.2) ne fournit aucun composant à déployer sur le site marchand.
Toutes les communications entre ces deux entités sont asynchrones via une API RestFull. Quel que
soit la nature de l’applicatif marchand (application mobile, applications riches ou plateformes
Web), l’API fonctionnera de la même façon.

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 4
04. Environnements
AByster fourni 02 environnements pour l’utilisation de ses services :
 L’environnement sandbox (https://sandbox-abyster.appspot.com) : environnement de test
où vous créez un compte AByster pour tester les différentes fonctionnalités de l’API depuis
votre site web ou application. Aucun frais n’est facturé à l’intégrateur dans cet
environnement.
 L’environnement de production (http://www.abyster.com) : quand vous êtes satisfait par
vos tests en sandbox vous passez en live, environnement effectif où vous réalisez de
véritables opérations avec vos clients, opérations sur lesquels vous êtes facturé suivant
votre forfait AByster.

05. Services
L’API met à disposition de l’intégrateur 02 services :

 Service de paiement :

http://${ABYSTERURL}/rest/api/v2/transaction/bill

 Service de vérification de statut du paiement :

http://${ABYSTERURL}/rest/api/v2/transaction/{id}/status

06. Prérequis à l’utilisation de l’API : Création d’un compte AByster


Entreprise

Pour être autorisé à utiliser les APIs AByster, il faut posséder un compte AByster Entreprise (dit
compte Marchand). Pour ce faire, click sur le bouton « Ouvrir un compte » sur le site AByster et
suivez les étapes. A la fin de la création du compte, vous recevez par mail vos paramètres
d’authentification pour l’utilisation des APIs.
 Clé privée (clé privée du compte AByster du marchand : consummerSecret)
 Identifiant (Identifiant du compte AByster du marchand : consummerId)
N.B : vous devez créer un compte sur chaque environnement (sandbox pour vos tests et
production avant le passage en live). Vous pouvez fournir les mêmes informations sur les 02
environnements lors de la création de ces comptes.

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 5
07. Intégration
Une fois votre compte marchand AByster crée, vous pouvez utiliser l’API moyennant le respect des
structures des requêtes qui lui sont destinées. Le format d’échange des données est le JSON.

07.1 Entêtes HTTP

Chaque appel à l’API doit se faire via une requête http possédant les paramètres d’entête avec des
valeurs spécifiques:
 Accept : « application/json »
 Accept-Encoding : « deflate »
 Content-Type : « application/json »
 Authorization : cet entête est utilisé par AByster pour authentifier le marchand

a. Paramètres de l’entête Authorization

Paramètres Description

consumerSecret Clé privée de votre compte AByster reçu par email à la création du
compte
consumerId Identifiant de votre compte AByster reçu par email à la création du
compte
consumerName Nom du site web marchand ou raison sociale.
consumerEmail Email avec lequel a été créé votre compte AByster.
consumerTimestamp Permet l’horodatage de chaque requête envoyée depuis le site
marchand. Il doit obligatoirement tenir sur 17 digits.
Ex : en PHP le format sera « Ymdhisu » et «yyyyMMddHHmmssSSS »
en Java

consumerToken Code secret obtenu par génération via MD5 de la concaténation des
valeurs des paramètres consumerId, consumerTimestamp et
consumerSecret

Prenons l’exemple d’un compte marchand dont les paramètres ont pour valeur celles-ci-dessous:
 consumerEmail= business@yahoo.fr
 consumerName=Demo
 consumerId= 6086896371367936
 consumerSecret= MF3ES6A81RQ5MFATALCSDUF9NRNAJ-28ed4ef6-0e41-401f-bfa0
 consumerTimestamp= 20150105023815000
Copyrights: © 2015 AByster. All rights reserved
www.abyster.com 6
b. Calcul du consummerToken :

consumerToken=MD5(consumerId+consumerTimestamp+consumerSecret)
consumerToken=MD5(608689637136793620150105023815000MF3ES6A81RQ5MFATALCSDUF9N
RNAJ-28ed4ef6-0e41-401f-bfa0)
consumerToken = 8e0f6287cf4ac76bf1f1e6735c1fc446

Vous pouvez vérifier que votre md5 est valide à l’adresse : http://www.md5.fr/

07.2 Intégration dans un site web ou une application web

a. Service de paiement

URL du service : http://${ABYSTERURL}/rest/api/v2/transaction/bill


Le site marchand fait appel à ce service pour initier le paiement d’une commande par son client.

 Header de la requête: voir §07.1

 Description des paramètres de la requête:

Le contenu de la requête est un objet JSON possédant plusieurs sous objet. Ci-dessous la structure
de chaque objet avec description des paramètres le constituant.

o Order : paramètre obligatoire contenant les informations sur la commande.

"order":{"reference":"1235", "redirectUrl": "http://monsite.com/redirect"}

Paramètres Type Requis Description


reference String Oui Représente l’identifiant de la commande dans le
système d’information du marchand.
Exemple : 1235, ORDER15, C0012
redirectUrl String Oui Représente l’Url sur laquelle le marchand sera
notifié une fois que le client aura payé la somme
correspondant à sa commande.

o Amount : paramètre obligatoire, contient les données sur le montant.

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 7
"amount":{"amountTTC":100",
"currency":"XAF",
"paymentMethod":"TRANSFERT_MOBILE_MONEY"}

Paramètres Type Requis Description


amountTTC Float Oui Montant global de la commande. Somme que le client
doit effectivement payer.
Exemple : 100
currency String Oui Code alphabétique de la devise du paiement.
Valeurs Actuellement supportées :
XAF : Franc CFA – BEAC
XOF : Franc CFA - BCEAO
Par défaut le paiement sera traité en XAF.
paymentMethod String Oui Méthode de paiement.
Exemple : TRANSFERT_MOBILE_MONEY.
Utiliser uniquement cette méthode pour le moment

o Buyer : paramètre obligatoire, contient les données sur le client qui va effectuer le
paiement.

"buyer":{
"msisdn":"00237653063472",
"email":"client@yahoo.fr",
“operateur”:”MTNMMoney”,
“name”:”Acheteur”
}

Paramètres Type Requis Description


msisdn String Oui Numéro de téléphone du client effectuant l’achat, utilisé
le format international.
Exemple : 00237xxxxxxxxx pour le Cameroun
operateur String Oui Opérateur de Mobile Money correspondant au msisdn
fournit. Valeurs actuellement supportées :
MTNMMoney : MTN Mobile Money
OrangeMoney : Orange Money
email String Non Adresse électronique du client effectuant l’achat
name String Non Nom du client qui effectue l’achat

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 8
 Instance d’une requête de paiement:

POST http://${ABYSTERURL}/rest/api/v2/transaction/bill
//Http request header
Accept-Encoding: deflate
Accept: application/json
Content-Type: application/json
Authorization: AUTH
consumerEmail="business@yahoo.fr",consumerTimestamp="20150105023815000",consumerTok
en="8e0f6287cf4ac76bf1f1e6735c1fc446",consumerName=”Demo”
//Json body content
{
"order":{"reference":"1235"
"redirectUrl":" http://monsite.com/redirect"
},
"amount":{
"amountTTC":100,
"currency":"XAF",
"paymentMethod":"TRANSFERT_MOBILE_MONEY"
},
"buyer":{
"msisdn":"00237653063472",
"email":”knc@yahoo.fr”,
“operateur”:”MTNMMoney”,
“name”:”Acheteur”
}
}

 Paramètres de la réponse

Paramètres Type Description


codeRetour String Code réponse de la requête
Valeurs possibles :
OK : tout s’est bien déroulé
NOK : erreur survenue
reference String identifiant de la commande dans le système d’information
du marchand.

status String Statut de la commande chez AByster


Valeur possibles :
PENDING : en attente du paiement
DONE : paiement effectué
INCOMPLETED : paiement incomplet (totalité de la
somme attendue non versée)
FAIL : échec de paiement
Copyrights: © 2015 AByster. All rights reserved
www.abyster.com 9
statusUrl String url via laquelle le marchand peut vérifier le statut de la
transaction chez AByster
gateway JSON Contient le numéro de téléphone et l’opérateur vers
lequel le client doit faire le transfert MoMo pour régler sa
commande.
Exemple :
gateway{ "msisdn":"672934725",
“operateur”:”MTNMMoney”}
raison String Code de l’erreur.
n’apparait que quand le codeRetour est NOK
description String Description de l’erreur.
n’apparait que quand le codeRetour est NOK

 Instance d’une réponse quand tout s’est bien passé

//http response Header

Content-Type: application/json
Content-Length: 128

//Json Response content

{
codeRetour: "OK"
reference: "1235"
status: "PENDING"
statusUrl: "http://${ABYSTERURL}/rest/api/v2/transaction/3/status"
gateway : { "msisdn":"672934725", “operateur”:”MTNMMoney”}
}

 Instance d’une réponse quand une erreur est survenue


//http response Header

Content-Type: application/json
Content-Length: 128

//Json Response content

{
codeRetour: "NOK"
raison: "DEF-1"
description: "Invalid or missing Json Parameters"
}

 Erreurs Potentielles pouvant apparaitre dans une réponse

Raison Message de l’erreur Description


DEF-1 Invalid or missing Json Paramètre manquant ou mal défini dans le coprs
Parameters json de la requête
Copyrights: © 2015 AByster. All rights reserved
www.abyster.com 10
DEF-2 Merchant Account does not Email marchand défini dans l’entête Autorization
exist or Inactive incorrect ou compte marchand désactivé
DEF-3 Invalid or missing header Entete Authorization mal défini
Authorization
DEF-4 AUCUNE_PASSERELLE_TROUVE Aucun numéro de téléphone destinataire n’est
DE PAIEMENT compatible avec le numéro de téléphone utilisé par
le client pour régler son achat par Mobile Money

b. Service de vérification du statut du paiement d’une commande


Dès que le processus de paiement est initié, le marchand peut à tout moment consulter le statut
de la transaction coté AByster. Ceci est possible via une requête GET sur l’URL:
http://${ABYSTERURL}/rest/api/v2/transaction/{id}/status où id représente le numéro de la
transaction coté AByster.
Cette URL correspond à la valeur du paramètre « statusUrl » de la réponse reçue par le site
marchand quand ce dernier a initié le processus de paiement.
 Instance d’une requête
Pour vérifier le statut de la transaction de l’exemple du paragraphe précédent on va utiliser la
valeur de la variable de retour statusUrl qui vaut :
GET http://${ABYSTERURL}/rest/api/v2/transaction/3/status

 instance d’une réponse


Quand le client a déjà régler sa facture, la valeur de l’attribut « status » est à « DONE »
{
codeRetour: "OK"
reference: "1235"
status: "DONE"
statusUrl: "http://${ABYSTERURL}/rest/api/v2/transaction/3/status"
}

Quand le client n’a pas entièrement réglé sa facture le status est à « INCOMPLETED »
{
codeRetour: "OK"
reference: "1235"
status: "INCOMPLETED"
statusUrl: "http://${ABYSTERURL}/rest/api/v2/transaction/3/status"
}

N.B : Si le status vaut « PENDING » alors la demande est toujours en cours de traitement.

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 11
 Erreur potentielle

Raison Message de l’erreur Description


DEF-5 TRANSACTION_INEXISTANTE La transaction dont on recherche le statut n’existe
pas ou n’a pas été sauvegardée.

c. Notification du marchand sur l’url de redirection

Comme vu au §07.2.a, lors de l’appel de l’API le marchand doit préciser l’URL (via le paramètre
redirectUrl) à laquelle il souhaite être notifier quand AByster aura reçu le paiement. A la réception
du paiement, AByster fait donc appel à cette URL via une requête http GET avec les paramètres
suivants :
 Reference : qui est la référence de la commande dont AByster a reçu le paiement ;
 Statut : représente le statut de la commande chez AByster, les valeurs possibles sont celles
expliquées plus haut dans ce document (DONE, INCOMPLETED, PENDING, FAIL).
Avec l’exemple précédent, la notification sera de la forme :
http://monsite.com/redirect?reference=”1235”&statut=”DONE”

En plus de la notification du marchand sur son url de redirection, il y a également une notification
par email sur l’adresse mail avec laquelle le marchand a créé son compte AByster.

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 12
07.3 Intégration dans une application mobile Android

a. Scénario du paiement

1 /api/v2/transaction/bill

Android App Request ACK (payment recipient,


2 phone number and transaction Id) AByster WEB
(User)
Platform
6
7

Mobile Money Notification


5
4
Transfert
3

Mobile Transfert Operation


AByster
Mobile
4
Money Server
Mobile Money Notification Edition PRO

b. Outils

AByster fournit au marchand une librairie Android à intégrer dans son projet, la librairie est
disponible en téléchargement sur http://api.abyster.com/index.php/telechargements-api, le
fichier zip ainsi téléchargé contient le dossier de la librairie « abyster-mobile-api_lib » et le dossier
d’un projet de démonstration fonctionnel « ABysterAPIDemo »

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 13
07.4 Intégration dans une boutique prestashop

a. Configuration du module

Le module est disponible sur http://api.abyster.com/index.php/telechargements-api. A


l’installation du module, il faut le configurer, ci-dessous la table des paramètres :
Paramètres Description

Consumer Id Identifiant de votre compte AByster reçu par email à la création du compte
Consumer Name Nom du site web marchand ou raison sociale.
Consumer Email Email avec lequel a été créé votre compte AByster.
Consumer Host Adresse de la plateforme AByster qui sera utilisé:
http://${ABYSTERURL}/rest/api/v2
Consumer Host URI /transaction/bill
Consumer Return URL de redirection qui sera appelé par AByster pour signaler au marchand
que le paiement a été effectué. Le suffixe obligatoire à utiliser est:
index.php?fc=module&module=abyster&controller=process&id_lang=1
Ex: si l’URL du site marchand est http://monsite.com alors la redirection sera:
http://monsite.com/index.php?fc=module&module=abyster&controller=pro
cess&id_lang=1
Consumer Secret Clé privée de votre compte AByster reçu par email à la création du compte

b. Paiement sur le site

Une fois le module configuré, le paiement par AByster apparait dans la liste des moyens de
paiement disponible sur votre boutique :

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 14
Copyrights: © 2015 AByster. All rights reserved
www.abyster.com 15
07.5 Simulateur Mobile Money

Pendant la phase d’intégration en mode Sandbox, l’intégrateur peut simuler les paiements Mobile
Money via le simulateur AByster. Pour simuler le payement d’une commande, il faut se rendre à
l’adresse: http://sandbox-abyster.appspot.com/pages/utils/abysterTools.html.

Description des champs du formulaire

- Pays : Ce champ permet de sélectionner le payss à partir duquel la commande a été initiée.
- Emetteur : Champ qui permet de saisir le numéro du client qui effectue le payement. Il
s’agit du client qui a passé la commande depuis votre site ou application.
- Destinataire : ce champ permet de sélectionner le destinataire du transfert. Sélectionner le
numéro qui vous a été indiqué lors de l’émission de la commande.
- Devise : ce champ contient une la valeur XAF qui est la monnaie de paiement.
- Montant TTC : ce champ permet d’insérer le montant du payement.
- Transaction Id : Représente le numéro de la transaction.

Les champs obligatoires sont : Pays, Emetteur, Destinataire, Montant TTC.

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 16
08. Architecture globale

Customer Merchant AByster Operator

Clicks on PAY action on


the Merchant Web Site Call Api
http://${ABYSTERURL}/rest/api/v2/transa
ction/bill
To initiate payment process

Init payment Process


Response of the payment initiation
Request

Realize a Mobile Money Payment action

Notify when payment is done Sends Mobile Money


http://monsite.com/redirect?referenc Notification by SMS
e=”1235”&statut=”DONE”

Can check any time payment status via


http://${ABYSTERURL}/rest/api/v2/tra
nsaction/{id}/status

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 17
09. Liens et ressources
[1] Le site dédié à l’API AByster www.api.abyster.com

[2] La communauté des développeurs AByster www.developpers.abyster.com

[3] Les réseaux sociaux

Copyrights: © 2015 AByster. All rights reserved


www.abyster.com 18

S-ar putea să vă placă și