Documente Academic
Documente Profesional
Documente Cultură
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
02. Définitions
Termes Signification
AByster désigne la société AByster.
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.
05. Services
L’API met à disposition de l’intégrateur 02 services :
Service de paiement :
http://${ABYSTERURL}/rest/api/v2/transaction/bill
http://${ABYSTERURL}/rest/api/v2/transaction/{id}/status
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.
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
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/
a. Service de paiement
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 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”
}
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
Content-Type: application/json
Content-Length: 128
{
codeRetour: "OK"
reference: "1235"
status: "PENDING"
statusUrl: "http://${ABYSTERURL}/rest/api/v2/transaction/3/status"
gateway : { "msisdn":"672934725", “operateur”:”MTNMMoney”}
}
Content-Type: application/json
Content-Length: 128
{
codeRetour: "NOK"
raison: "DEF-1"
description: "Invalid or missing Json Parameters"
}
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.
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.
a. Scénario du paiement
1 /api/v2/transaction/bill
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 »
a. Configuration du module
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
Une fois le module configuré, le paiement par AByster apparait dans la liste des moyens de
paiement disponible sur votre boutique :
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.
- 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.