Solution de Paiement Mobile Innovante
Solution de Paiement Mobile Innovante
Thème:
Présenté par
❖ HADJ SAID Nadine.
❖ REKOUANE Hichem.
1
Dédicaces
Je dédie ce travail
f
Á mes très chers parents, pour tous leurs sacrifices, leur amour, leur
tendresse, et leur soutien tout au long de mes études,
Á ma très chère amie Yasmina qui m’a toujours soutenue tout au long de mon
parcours.
Nadine.H
2
Dédicaces
Je dédie ce travail
f
Á mes très chers parents, pour tous leurs sacrifices, leur amour, leur
tendresse, et leur soutien tout au long de mes études,
Á tous mes amis, pour leur soutien et pour les bons moments et les divers
aventures qu’on a eu ensemble durant mon parcours à l’université,
Hichem.R
3
Remerciements
Nous adressons nos remerciements tout particulièrement :
Á nos très chers parents, notre fierté et bien sur la source de notre réussite
pour leurs sacrifices et encouragement. Que dieux nous les garde et les protège.
Á nos très chers frères, soeurs, ami (es) et à toutes les personnes qui ont
Hichem.R, Nadine.H
4
Table des matières
Introduction générale 11
Introduction 12
1. Définition 12
2. Historique 12
Conclusion 20
Introduction 21
1. Le paiement électronique 21
1.1. Définition 21
1.2. Fonctionnement 23
2. Le paiement mobile 24
5
2.1. Définition 24
2.2. Portefeuille mobile 24
2.2.1. Définition 24
2.2.2. Utilisation 24
2.3. Evolution du paiement mobile 25
2.4. Les types du paiement mobile 26
2.4.1. Le paiement NFC (Near Field Communication) 26
2.4.2 Paiements par transmission magnétique sécurisée 26
2.4.3. Paiements basés sur les ondes sonores 27
2.4.4. Paiements par QR code (Quick Response code) 27
2.4.5. Paiements de mobile à mobile 28
2.4.6. Virements bancaires mobiles 28
2.4.7. Paiements par SMS 29
2.5 Avantages et inconvénients du paiement mobile 30
2.5.1 Avantages du paiement mobile 30
2.5.2. Inconvénients du paiement mobile 31
Conclusion 31
Introduction 32
6
2.3.2. Architecture du système (composants et liens entre ces sous-parties) 45
2.3.2.1. Définition 45
2.3.2.2. Architecture globale de notre système 46
2.3.2.3. Architecture des sous-parties 46
2.3.2.3.1. L’architecture de l’application côté vendeur 47
2.3.2.3.2. L’architecture de l’application côté client 47
2.3.2.4. Les vues (structurelles) d’une architecture logicielle 48
2.3.2.4.1. La vue logique 48
Diagrammes de classes pour notre cas d’étude 49
Diagrammes de séquences 51
2.3.2.4.2 La vue d’implémentation 52
2.3.2.4.3. La vue de déploiement 52
Conclusion 53
Introduction 54
7
2.2.1. Interface d’authentification 70
2.2.2. Interface d’accueil 71
2.2.3. Interface de détails de la carte et proposition de paiement 72
2.2.4. Interface d’ajout d’une carte 73
Conclusion 74
Conclusion générale: 75
Webographie 76
8
Table des figures
9
Liste des tableaux
10
Introduction générale
Les technologies de l'information et de la communication ont été la révolution la plus
importante et innovante qui a marqué ces dernières décennies. En effet, loin d'être un
phénomène éphémère ces technologies nous ont apportés du confort dans notre vie
quotidienne par leur capacité à traiter l’information dans des délais raisonnables.
Cette révolution a permis l’émergence de la notion de la portabilité et de la mobilité
qui permet un accès distant, instantanée et un flux sans interruption d’informations. En effet,
cela est symbolisé par l’apparition des différents appareils de haute technologie tels que les
Smartphones et les tablettes qui sont dotées de plusieurs applications pratiques qu’elles
soient gratuites ou payantes.
L’objectif de notre projet présenté dans ce mémoire, est de développer une solution
de paiement mobile pour une entreprise commerciale quelconque. Cela va faciliter le
processus de paiement au clients et aux vendeurs de l’entreprise, puisqu’ils n’auront besoins
que de leurs smartphones, et sera donc d’une grande utilité pour les entreprises
commerciales en étant un moyen d’attirer et de satisfaire leurs clientèles.
Ce système sera donc constitué d’une application mobile pour le vendeur de
l’entreprise et d’une seconde application de portefeuille mobile pour son client.
Pour mener à terme notre travail, le manuscrit est composé de quatre chapitres :
❖ Chapitre 1 : Les applications mobiles:
Ce chapitre présente les applications mobiles, leurs différents types et
les différents systèmes d’exploitations mobiles.
❖ Chapitre 2 : Le paiement mobile:
Ce chapitre définit le paiement mobile et présentes ses différents
types et leurs fonctionnement..
❖ Chapitre 3 : Analyse et conception:
Nous montrons dans ce chapitre une description générale de notre
application mobile et nous expliquons aussi la phase de conception de
ce projet avec ces différents diagrammes.
❖ Chapitre 4 : Implémentation et réalisation:
Nous présentons les outils et langages utilisés pour la réalisation de
nos applications, et nous montrons leurs interfaces.
11
Chapitre I: Les applications mobiles.
Introduction
L’apparition des téléphones mobiles intelligents a révolutionné le monde des
technologies de l’information et de la communication, notamment grâce aux développement
d’applications mobiles qui a très vite submergé et a totalement changé le quotidien de la
population.
Aujourd'hui, l’utilisation des applications mobiles ne cesse de croître et leur développement
devient de plus en plus important, ce qui poussent plusieurs entreprises à créer leur propres
applications mobiles.
Dans ce chapitre, nous définissons les applications mobiles, et expliquons leurs différents
types, leur mode de fonctionnement, et leurs différentes plateformes.
2. Historique
Les applications mobiles sont liées aux développements d’internet et des
télécommunications des réseaux sans fils, et à l’apparition et la démocratisation des
terminaux mobiles : smartphones, tablettes tactiles… Elles sont apparues dans les années
12
1990. [2]
Juin 1983: Steve Jobs Septembre 2008: Mars 2011: Janvier 2014:
prédit un système de 100 millions de Lancement L'utilisation des
distribution de logiciels: téléchargements d’Amazone App applications mobiles à
dans l'App Store Store la hausse
13
music Store
Juin 2007:
Développeurs tiers
créent des
programmes pour
l'iPhone
Novembre 2007:
Applications natives
pour l’iPhone
Juillet 2008:
Lancement de l'App
Store
3.1.1 Présentation
14
Ces dernières ont un nom de domaine qui commence généralement par
“mobile.” et il s’agit de la version mobile d’une application web, exemple :
“mobile.amazon, mobile.facebook”. [18]
❖ Les applications Web dont l’affichage s’adapte automatiquement au format de
l'écran et par extension à l’affichage mobile (applications responsives): Ces
applications sont accessibles via le navigateur Internet qui est sur l’appareil
mobile, elles sont donc indépendantes de la marque et du système
d'exploitation de ce dernier et leur accès aux fonctionnalités est limitées à
celles du navigateur, elles sont développées à partir de technologies Web et
nécessitent donc une connexion internet. [18]
3.1.2 Fonctionnement
Les applications web sont basées sur l’architecture client-serveur qui est un modèle
informatique dans lequel le serveur héberge, fournit et gère la plupart des ressources et
services à consommer par le client. Ce type d'architecture a un ou plusieurs ordinateurs
clients connectés à un serveur central via une connexion réseau ou Internet . [9]
Les clients correspondent aux appareils des utilisateurs connectés sur Internet (téléphone
mobile connecté à internet dans ce cas) et aux logiciels d'accès au web (par exemple, les
navigateurs comme Firefox ou Chrome).
Les serveurs sont des ordinateurs qui stockent des pages web, des sites ou des
applications.
L'application Web nécessite un serveur Web pour gérer les demandes du client, un serveur
d'applications pour effectuer les tâches demandées, et parfois, une base de données pour
stocker les informations. [8]
❖ L'utilisateur déclenche une demande (requête) au serveur Web via Internet, soit via
un navigateur Web ou l'interface utilisateur de l'application mobile.
❖ Le serveur Web transmet cette demande au serveur d'applications Web approprié.
❖ Le serveur d'applications Web exécute la tâche demandée (comme interroger la base
de données ou traiter les données) puis génère les résultats des données
demandées.
❖ Le serveur d'applications Web envoie les résultats au serveur Web avec les
informations demandées ou les données traitées.
15
❖ Le serveur Web envoie la réponse au client avec les informations demandées qui
apparaissent ensuite sur l'écran de l'utilisateur.
3.2.2 Fonctionnement
Les applications mobiles natives sont écrites dans un langage natif, c’est à dire un
langage qui sera compilé pour la plateforme cible, elles utilisent les diverses APIs
(Application Programming Interface qui sont des ensembles normalisés de classes, de
méthodes, et de fonctions qui servent de façades qui font communiquer des services web avec
des applications.) fournies par la plateforme en question pour faire communiquer ses
différentes composantes avec le système d’exploitation, ce qui leurs donne accès à toutes
16
les fonctionnalités de l'appareil mobile. [10]
3.2.4 Inconvénients
❖ Elles doivent respecter les règles définies par les différentes sociétés des
plateformes mobiles . Que ce soit l’approbation nécessaire des Apps Store pour
diffuser l’application ou ses mises à jour ou les conditions tarifaires imposées.[11]
❖ Le coût lié au développement et à la maintenance d’une application native est plus
élevé si elle est portée sur plusieurs plateformes (afin d’être disponible pour un
maximum de mobinautes) que le coût d’un site web mobile. [10]
❖ Pour que l’utilisateur ait accès à la dernière version, il faut qu’il mette à jour
l’application depuis le store.[19]
3.3.1. Présentation
Ce sont des applications qui partagent le plus de code possible ou parfois le même
code entre plusieures plateformes. Une application dite hybride, contrairement à une
application native, n’est pas dépendante d’une plateforme mobile en particulier. Et contrairement
aux applications Web, elles peuvent accéder à plus de fonctionnalités présentes sur le mobile.
[10]
17
3.3.2. Fonctionnement
Les applications mobiles hybrides fonctionnent selon deux approches ayant pour but
avoir un seul code pour plusieurs plateformes: l’approche “Web views” et l’approche “High
level language/ framework into native”.
❖ L’approche “Web views” émule un navigateur et propose des APIs
(Application Programming Interface) pour communiquer avec le système
d’exploitation et utiliser ses fonctionnalités natives comme le fait par exemple
le framework de développement mobile Apach Cordova. [17]
❖ L’approche “High level language/ framework into native”: Cette approche
s’appuie sur le principe d’écrire le code de l’application dans un langage de
haut niveau /framework qui sera traduit en langage natif, prenons deux
exemples:
➢ Le framework de développement d’application mobile open-source
React Native de facebook: Il permet de développer des applications
pour Android et iOS en permettant aux développeurs d’utiliser la
librairie javascript React qui sera traduit vers les langages natifs des
plateformes précédemment citées puis compilé, en utilisant un bridge
préfabriqué qui fait communiquer les APIs javascript avec les
fonctionnalités natives du système d'exploitation. [11]
➢ Le framework de développement d’application mobile open-source
multiplateformes Flutter de google: Où l’application est codée en
langage dart. Avec Flutter, la partie présentation de l’application est
gérée par un code spécifique et n’est pas appelé avec un bridge, elle
fait appel au fonctions natives du système d’exploitation en utilisant
des APIs. [13]
18
3.3.4 Inconvénients [10]
Une plateforme d'applications mobiles est une suite d'outils logiciels utilisés
pour concevoir, créer et maintenir des applications mobiles. Il existe de nombreuses
plateformes d'applications mobiles différentes, et toutes ces plateformes contiennent
un environnement de développement intégré. Cela fournit les outils dont un
développeur a besoin pour écrire, tester, déployer et gérer des applications
mobiles.[10]
❖ . iOS
❖ Android
19
(Android TV, les voitures (Android Auto), les ChromeBook (Chrome
OS qui utilise les applications Android) et les smartwatch (Wear OS).
Cette plateforme met à disposition un kit de développement (SDK)
basé sur le langage Java. elle possède donc une bibliothèque de
plusieurs classes java servant de base pour plusieurs type
d’application (exemple :SSL pour les protocoles de sécurité). [21]
Conclusion
Les applications mobiles font aujourd'hui partie de notre quotidien et les entreprises
se précipitent à en développer d’autant plus qu’il est plus facile de développer et maintenir
une meme applications sur plusieurs plateforme grâce à l'émergence des outils de
développement multi plateformes.
Nous avons présenté dans ce chapitre les applications mobiles, leurs modes de
fonctionnement, leurs types ainsi que les différentes plateformes mobiles en identiant leurs
forces et leurs faiblesses pour enn déterminer la plateforme qui conviendra le mieux à notre
cas d’étude.
Dans le chapitre suivant, nous définirons et nous détaillerons le paiement mobile, son
fonctionnement et ses différents types.
20
Chapitre II: Le paiement mobile.
Introduction
Aujourd’hui, il existe de nombreuses possibilités pour payer ses biens et services.
Parmi elles, il y a le paiement mobile, aussi connu sous l’appellation m-paiement, une
tendance pratique et intéressante qui permet de régler son paiement seulement avec son
téléphone mobile.
Nous définissons donc dans ce chapitre, ce type de paiement, son utilité ainsi que ses
différents types.
1. Le paiement électronique
21
Les cartes de débit sont des cartes délivrées par la banque à l’ouverture d’un
compte dont les dépenses sont prélevées au fur et à mesure sur ce dernier,
Elles présentent soit le logo CB, ce qui indique qu'elles sont un moyen de
paiement national, soit les logos VISA ou MASTERCARD, ce qui indique
qu'elles permettent les paiements internationaux.
Les cartes de crédit sont également liées à un compte courant mais à la
différence des cartes débit, les dépenses ne sont prélevées qu'en une seule
fois, le dernier jour du mois ouvré.
22
❖ Systèmes de micropaiement: Le micropaiement est un mécanisme de
paiement qui permet de procéder à l'achat de biens ou de services de faible
montant. Ce service de paiement est fréquemment utilisé par les éditeurs de
sites internet. Différentes solutions de micropaiement existent : les numéros
de téléphone surtaxés, l'envoi de SMS surtaxés, PayPal, la facturation sur la
facture du fournisseur d'accès à Internet ou de l'opérateur mobile, ou encore
les cartes prépayées. L'utilisation du micropaiement présente l'avantage pour
les commerçants de ne pas avoir recours à des solutions de paiement plus
coûteuses telles que la carte bancaire. Il permet également aux
cybermarchands de gérer avec simplicité leur module de paiement sur leur
site internet. Le micropaiement offre aussi des avantages pour les
consommateurs. En un simple clic, le client peut acheter un bien ou un
service sans avoir à créer un compte personnel ni à fournir des données
personnelles. Il s'agit d'un moyen de paiement sécurisé et très utilisé
notamment sur les sites de jeux en ligne. [50]
23
❖ Du côté du vendeur: Un fournisseur de paiement en ligne reçoit un paiement
de la banque d'un client et le transfère sur le compte du marchand.
2. Le paiement mobile
2.1. Définition
Les paiements mobiles sont toutes les transactions effectuées depuis un
téléphone mobile et débitées soit sur une carte bancaire soit sur la facture opérateur,
soit sur un Porte monnaie électronique (défini ci-dessous), qui peut être alimenté
avec un dépôt de cash auprès d'un agent ou d'un commerçant. Au lieu de payer par
carte de crédit ou bien en argent comptant, un consommateur peut utiliser un
téléphone mobile intelligent pour se procurer des biens et des services. [22]
2.2.1. Définition
Un portefeuille mobile est une application pour appareil intelligent qui stocke
les détails de la carte de crédit ou de débit de l'utilisateur afin que les consommateurs
puissent payer leurs transactions en utilisant leur appareil intelligent (smartphone ou
tablette...). Les portefeuilles mobiles populaires incluent Apple Pay, Google Pay et
Samsung Pay [14].
2.2.2. Utilisation
Pour utiliser un portefeuille mobile, l'utilisateur télécharge une application de
portefeuille mobile sur son appareil, puis ajoute les détails de sa carte. Les
portefeuilles mobiles stockent les données sensibles des cartes en utilisant un
processus de remplacement des données sensibles par des symboles d'identification
uniques qui conservent toutes les informations essentielles sur les données sans
compromettre leur sécurité, appelé la tokenization, garantissant ainsi une sécurité de
paiement accrue pour le consommateur et le commerçant. Le numéro de carte de
24
crédit à 16 chiffres est remplacé par un identifiant alphanumérique généré
aléatoirement, qui constitue le jeton.
Pour effectuer un paiement mobile avec un portefeuille mobile, l'utilisateur rapproche
son téléphone du terminal de point de vente (POS). Ce point de vente doit être activé
avec la technologie NFC ou scanner un de QR code par exemple (que nous
détaillerons juste après). [14]
25
2.4. Les types du paiement mobile
Diverses méthodes ont été développées pour permettre aux consommateurs
de payer facilement via un téléphone comme les paiement NFC, les Paiements par
transmission magnétique sécurisée (MST),les Paiements basés sur les ondes
sonores, les Paiements par QR code (Quick Response code), les Paiements de
mobile à mobile, les Virements bancaires mobiles, les Paiements par SMS et bien
d’autres.
26
2.4.3. Paiements basés sur les ondes sonores
Les paiements mobiles basés sur des ondes sonores (ou basés sur
des signaux sonores) permettent des paiements mobiles sans contact via des
ondes sonores.
Les transactions sont traitées via des ondes sonores uniques contenant des
données de paiement cryptées. Le terminal envoie des ondes sonores à
l'appareil mobile pour transmettre en toute sécurité les détails du paiement.
Le téléphone de l'utilisateur convertit ensuite ces données en signaux
continues en amplitude et en cours du temps dits analogiques qui complètent
la transaction.
La technologie de paiement basée sur le son est assez sécurisée car elle
utilise la tokenisation parmi d'autres méthodes de cryptage, comme
l'authentification par code PIN / mot de passe ou biométrie. [15] Exemple:
solution de paiement mobile par ondes sonores de CopSonic. [54]
27
paiements par code QR. Ils confirment le prix, si nécessaire,
avant de taper pour finaliser le paiement.
28
2.4.7. Paiements par SMS [7]
Les paiements par SMS (Short Messaging Service) sont l'un des
moyens les plus simples et les plus sûrs de payer des articles. Il n'est pas
nécessaire pour l’utilisateur de se souvenir des mots de passe ou d'avoir
accès à sa carte de crédit ou à ses coordonnées bancaires; en fait, ils n'ont
pas du tout besoin d'avoir un compte bancaire.
Le client paie un SMS qui comprend le coût de l'article ou du service qu'il a
acheté.
Cet argent est déduit d'un mobile prépayé ou ajouté à la facture du client.
Lorsque la facture est payée, l'opérateur mobile prend sa part du prix
premium SMS. L'opérateur de téléphonie mobile envoie ensuite le reste du
paiement à la société de traitement des paiements SMS qui exploite la
passerelle SMS pour la société auprès de laquelle le client a acheté.
La passerelle SMS est le nom du numéro auquel un client envoie un SMS
pour acheter un produit ou un service.
Le fournisseur de paiement par SMS prend sa part des revenus et transfère le
reste à l'entreprise qui a fourni le produit ou le service.
À aucun moment, les détails du client ne sont révélés à quiconque, sauf à
l'opérateur de téléphonie mobile. C'est pourquoi les paiements par SMS sont
sûrs, faciles et sécurisés.
L’utilisateur a donc différentes manière pour effectuer son paiement par SMS.
Quelques méthodes sont décrites ci-dessous:
29
le fournisseur de paiement SMS envoie ensuite ce numéro par SMS
avec un code. L'utilisateur utilise ensuite ce code pour accéder au
contenu en ligne.
30
2.5.2. Inconvénients du paiement mobile
❖ Le risque de ne pas pouvoir effectuer le paiements via mobile quand la
batterie du smartphone est faible. En effet les applications de paiement ne
seront plus fonctionnelles jusqu’à ce que la batterie se recharge. [6]
❖ Les vendeurs en ligne risquent d’être confrontés à d’énormes problèmes s’ils
n’ont pas des dispositifs pour détecter les tentatives de fraude. Certains
clients frauduleux peuvent acheter sur le site d’un vendeur et si celui-ci n’a
pas des moyens de sécurisation, des complications peuvent en découler
comme un litige de fraude dans lequel le vendeur sera fortement impliqué.
Ces risques peuvent être contrés par des détecteurs de fraude. [16]
Conclusion
Les paiements mobiles ont révolutionné la façon dont les entreprises envisagent le
traitement des paiements en assurant d'un côté des moyens plus sécurisés et authentifiés
de traiter les paiements, et de l’autre, des moyens plus rapides et plus pratiques.
Dans ce chapitre nous avons présenté le paiement mobiles, et ses différents types afin de
déterminer le type de m-paiement qui conviendra le mieux à notre cas d’étude.
Dans le prochain chapitre, nous aborderons les méthodes et langages utilisées pour la
conception de notre application.
31
Chapitre III: Analyse et Conception.
Introduction
Tout processus de développement d’applications ou de systèmes informatiques doit être
impérativement précédée d'une méthodologie d'analyse et de conception qui a pour objectif
de permettre de formaliser les étapes préliminaires du développement, afin de le rendre plus
fidèle aux besoins du client.
Dans ce chapitre, nous abordons une tâche importante dans l’élaboration de ce travail, à
savoir l’analyse et la conception. En effet nous présentons l’approche que nous avons suivie
pour concevoir notre application et ses différentes étapes en les illustrant avec quelques
diagrammes conformes au langage UML.
32
2. Processus du développement de notre
solution
Le processus de développement de logiciels met en œuvre un ensemble d'activités
qui à partir d'une demande d'informatisation d'un processus permettent la conception,
l'écriture et la mise au point d'un logiciel (et donc de programmes informatiques) jusqu'à sa
livraison au demandeur. [25]
Le développement de notre application a suivie dans l’ordre les phases suivantes:
❖ Spécification des besoins.
❖ Analyse des besoin.
❖ conception.
❖ Réalisation : Codage et tests unitaires.
❖ Qualification.
Nous détaillons dans ce chapitre les phases de spécification et d’analyse des besoins ainsi
que les phase de conception globale et détaillée.
2.1.1.1. Définition
Le cahier des charges est un document contractuel rédigé par
le client, qui décrit, en langage naturel, les fonctionnalités attendues
du produit. [35]
33
Définir clairement ses frontières et les acteurs avec lesquels il
communique. Ces derniers peuvent être soit des acteurs humains, soit d’autre
systèmes avec lesquels le futur système communique.
Notre système se compose de deux applications mobiles:
-Une application pour le vendeur de l’entreprise commerciale.
-Une application de portefeuille mobile pour le client de l’entreprise.
❖ L’application côté vendeur communique avec:
➢ Un utilisateur: le vendeur de l’entreprise commerciale.
➢ L’application côté client de l’entreprise: L’application côté
vendeur génère un code QR qui sera scanné avec l'application
du client pour valider le paiement.
➢ Le système informatique de l’entreprise: L’application du
vendeur communique avec la base de donnée de l’entreprise
pour récupérer les commandes associée au vendeur par
exemple.
34
2.1.3. Résumer le tout dans un diagramme de contexte
2.1.3.1 Définition
Le diagramme de contexte sert à délimiter le contour du
système en cours d'étude, ie définir clairement ses frontières et les
acteurs avec lesquels il communique. Ces derniers peuvent être soit
des acteurs humains, soit d'autres systèmes avec lesquels le futur
système doit communiquer. [28]
35
Acteur Tâche Scénario
36
les informations de son
compte.
37
2.1.5. Etablissement du diagramme des cas d’utilisations
Après avoir défini les tâches à effectuer par les utilisateurs et leurs
scénarios, nous résumons celles-ci en UML en établissant un diagramme des
cas d’utilisation.
2.1.5.1. Définition
38
2.1.5.2. Diagramme des cas d’utilisation pour notre cas d’étude
39
2.2.1. Décrire les spécifications précises du produit
Décrire le type de nos applications mobiles et leurs environnement, et
ressources disponibles ainsi que les contraintes de réalisations.
Après avoir effectué une étude sur les types d’applications mobiles et leurs
plateformes, ainsi que sur les types de paiements mobiles, nous avons
effectué les choix qui correspondent à nos critères de sélection qui sont:
40
2.2.2.1. Extraire les fonctionnalités du système et les interfaces
utilisateur
-Interface -Authentification du
d’authentification vendeur avec un nom
d’utilisateur et mot de
passe.
-Cliquersur le l'icône
“Commandes” et afficher
une autre interface.
41
commande et un bouton
“options de paiement”.
-Retour à la page
principale.
-Retour à la page
principale.
42
-Retour à la page
principale.
Application de
portefeuille -Interface d’accueil -Choisir avec quel carte
de crédit/débit que
mobile pour le l’utilisateur veut utiliser
client de pour payer.
l’entreprise.
43
-En cliquant sur le
bouton “payer”,
-Interface de l’application accède à
paiement l’appareil photo du
téléphone mobile pour
pouvoir scanner le code
Qr et effectuer le
paiement en enregistrant
la transaction.
-Un message de
confirmation lui sera
affiché une fois la
transaction effectuée.
44
2.3. La phase de la conception
La phase de la conception permet de décrire de manière non ambiguë, le plus
souvent en utilisant un langage de modélisation, le fonctionnement futur du système,
et son architecture afin d'en faciliter la réalisation.
2.3.2.1. Définition
Une architecture logicielle est une représentation abstraite d'un
système exprimée essentiellement à l’aide de composants logiciels en
interaction via des connecteurs. L’architecture logicielle réduit la
complexité du système abordé en le structurant en composants
logiciels. Elle ne fournit que les propriétés externes des éléments
structurants et ne se préoccupe pas des détails d'implantation.
Les composants sont des spécifications d’unités fonctionnelles
clairement définies, sémantiquement cohérentes et compréhensibles.
45
Les connecteurs sont des objets du premier ordre qui assurent les
interactions entre composants, et qui peuvent être de complexité
variable . Ils permettent la flexibilité et l’évolution. [32]
46
2.3.2.3.1. L’architecture de l’application côté vendeur
Le schéma ci-dessous représente l’architecture de
l’application côté vendeur de l’entreprise:
47
Figure 5: Architecture détaillée de l’application client.
48
liaisons avec les autres objets [51]) et les aspects dynamiques
(qui définissent le cycle de vie des objets en précisant: leur
comportement, les différents états par lesquels ils passent et
les événements qui déclenchent ces changements d'états [51])
d’un système en termes de classes, d’objets, de connexions et
de communications.
En UML: Etablissement du diagramme de paquetages,
diagramme de classe, diagrammes de séquences etc.
49
Figure 6: Diagramme de classes pour l’application vendeur.
50
❖ Diagrammes de séquences
51
Figure 9: Diagramme de séquences du cas d’utilisation “Effectuer un
paiement par Qr code ”.
52
Conclusion
Dans ce chapitre, nous avons présenté l’analyse et la conception de notre solution, en
les illustrant avec quelques diagrammes en utilisant le formalisme UML.
Au niveau de l’analyse, nous avons défini les besoins de notre client, et détaillé les
spécifications fonctionnelles et non fonctionnelles que doit contenir notre solution. Et nous
avons tracé deux diagrammes UML à savoir le diagramme de contexte et le diagramme de
cas d’utilisations.
Au niveau de la conception, nous avons défini l’architecture globale et détaillée de notre
solution, et nous avons réalisé deux diagrammes de séquences et deux diagrammes de
classes.
Le chapitre suivant est consacré à phase de l’implémentation et la réalisation de nos deux
applications, à la présentation des différentes interfaces, ainsi que les outils utilisés durant la
réalisation.
53
Chapitre 4: Implémentation et réalisation.
Introduction
La réalisation de notre solution est le résultat de la mise en œuvre de l’analyse et de
la conception présentées dans le chapitre précédent. C’est l’aboutissement final de notre
projet et la raison d’être du projet lui-même.
Pour pouvoir mener à bien cette étape, il est nécessaire de choisir des technologies
adaptées à sa réalisation.
Nous présentons dans ce chapitre la réalisation de notre application. Pour ce faire, nous
avons structuré notre chapitre comme suit :
❖ Une première section consacrée à la présentation de l’environnement de
développement (outils, langages..) utilisés durant cette phase.
❖ Une seconde section consacrée à présentation des fonctionnalités de notre système
à travers ses interfaces utilisateur.
54
développeurs Web peuvent désormais écrire des applications mobiles qui semblent et se
sentent vraiment «natives», le tout dans le confort d'une bibliothèque JavaScript. De plus,
étant donné que la plupart du code écrit peut être partagé entre les plateformes, React
Native facilite le développement simultané pour Android et iOS. Les applications React
Native sont écrites à l'aide d'un mélange de balises JavaScript et HTML (qui signifie
Hypertext Markup Language. Il permet à l'utilisateur de créer et de structurer des sections,
des paragraphes, des en-têtes, des liens et des citations pour les pages et les applications
Web. [38]), connu sous le nom de JSX. Ensuite, le «pont» React Native invoque les API de
rendu natives dans Objective-C (pour iOS) ou Java (pour Android). Ainsi, l’application
restituera en utilisant de vrais composants d'interface utilisateur mobile, et non des vues
Web, et ressemblera à toute autre application mobile. React Native expose également des
interfaces JavaScript pour les API de plate-forme, afin que les applications React Native
puissent accéder aux fonctionnalités de la plate-forme telles que la caméra du téléphone ou
l'emplacement de l'utilisateur. [36]
55
❖ Une interface de ligne de commande (CLI) qui comprend des dizaines de
commandes prédéfinies (Artisan).
❖ Test automatique. Des tests automatisés font partie intégrante de Laravel.
❖ Un environnement de développement virtuel portable. Homestead fournit aux
développeurs tous les outils nécessaires pour développer Laravel dès la
sortie de la boîte. [39]
1.3. Postman
Postman est un outil de développement logiciel. Il permet aux
utilisateurs de tester les appels aux APIs. Les utilisateurs de Postman saisissent des
données, les données sont envoyées à une adresse de serveur Web spéciale. Les
informations sont renvoyées, et Postman les présente à l'utilisateur.
Postman aide à créer, tester et modifier des API. Presque toutes les fonctionnalités dont
tout développeur pourrait avoir besoin sont encapsulées dans cet outil. Il est utilisé par
plus de 5 millions de développeurs chaque mois pour rendre leur développement d'API
facile et simple. Il a la capacité de faire différents types de requêtes HTTP (GET, POST,
PUT, PATCH), d'enregistrer des environnements pour une utilisation ultérieure, de
convertir l'API en code pour différents langages (comme JavaScript et Python). [45]
1.4. MYSQL
MYSQL est un Système de Gestion de Base de
données (SGBD) qui permet d’entreposer des données de manière structurée (Base,
tables, champs, enregistrements, etc.). Le noyau de ce système permet d’accéder à
l’information entreposée via un langage spécifique qu’on appelle SQL (Structured Query
Language). MySQL doit sa popularité à sa rapidité, sa robustesse, la facilité de son
utilisation, ses performances et son caractère open source. [41]
56
1.5. HeidiSQL
HeidiSQL est un outil d'administration de base de données
possédant un éditeur SQL et un constructeur de requête. Il a été développé et optimisé
pour être utilisé avec le SGBD relationnel MySQL disponible commercialement ou
gratuitement. [42]
57
1.8. Pusher
Pusher est une infrastructure en tant que service, qui propose des
API haut niveau pour créer des applications temps réel (application ou ensemble
d’applications informatique dont le fonctionnement est assujetti à l’évolution dynamique d’un
procédé extérieur qui lui est connecté et dont il doit contrôler le comportement. [48] ) sans se
soucier de l’infrastructure ni des détailles bas niveau des implémentations. [47]
1.9. Heroku
58
MYSQL Gestion de la base de données.
59
Figure 10: Interface d’authentification du vendeur.
60
2.1.2. Interface d’accueil
61
2.1.3. Interface des commandes
62
2.1.4.Interface Détails des commandes
63
2.1.5. Interface options de paiement
64
2.1.6. Interface du paiement par QR code
65
2.1.7. Interface de la confirmation du paiement
par code QR
66
2.1.8. Interface du paiement en liquide
67
2.1.9. Interface du paiement en chèque
68
2.1.10. Interface de l’historique des transactions
69
2.2. L’application portefeuille mobile pour le client de
l’entreprise
70
2.2.2. Interface d’accueil
71
2.2.3. Interface de détails de la carte et proposition de
paiement
72
2.2.4. Interface d’ajout d’une carte
73
Conclusion
Dans ce dernier chapitre, nous avons présenté la dernière phase de la conception de
notre système à savoir la réalisation, ou nous avons cité et définit les outils logiciels que
nous avons utilisé pour développer notre solution, et nous avons aussi présenté nos deux
applications mobiles à travers leurs interfaces utilisateurs.
74
Conclusion générale
L’objectif de notre travail était de développer une solution de paiement mobile pour
une entreprise commerciale quelconque, permettant au futurs utilisateurs de payer leurs
commandes en utilisant seulement leur appareil mobile.
Pour commencer notre travail, il nous a fallu faire une étude théorique sur tous les outils
nécessaires pour le développement d’une application mobile.
En second terme, nous avons étudié le paiement mobile et ses différents types, afin de
comprendre leur fonctionnement et pouvoir choisir le type qui convient le mieux à notre cas
d’étude.
Ensuite, nous avons utilisé le langage de modélisation UML qui nous a permis de décrire
le plan d’élaboration et construction de notre application afin de concevoir cette dernière.
Enfin, pour réaliser notre solution, plusieurs technologies nous ont été nécessaires, on
citera Le framework de développement d’application mobile open-source React Native, le
framework Laravel etc.
Après le passage par les différentes étapes précédemment citées, notre solution a
abouti à des logiciels fonctionnels qui répondent globalement aux attentes des utilisateurs
pour leur permettre d'effectuer un paiement avec leurs smartphones de façon pratique et
rapide, qui comporte une application mobile sur la plateforme Android destinée au vendeur
de l’entreprise, et une application de portefeuille mobile pour le client.
La solution que nous proposons présente certaines limites, dont la non connexion à
un vrai système informatique de banque, en effet le paiement effectué avec cette solution est
un paiement simulé et ne peut s’appliquer dans le monde réel, en plus de sa disponibilité
sur la plateforme Android uniquement. Elle reste d’ailleurs en développement dans le but
d’avoir un vrai système totalement utilisable par les entreprises commerciales et leurs
clients, et peut être améliorée comme suit:
❖ Connecter l’application portefeuille mobile à un vrai système de banque.
❖ Ajouter d’autres couches de sécurité au niveau du paiement.
❖ Rendre les deux applications disponibles sur la plateforme iOS.
❖ Ajouter d’autres types de paiement mobile comme le paiement NFC.
le travail que nous avons accompli nous a amené à approfondir nos connaissances,
sur les technologie de développement mobile, le géni logiciel, les architectures logicielles,
75
les APIs Restful, le modèle client/serveur ainsi que les systèmes de gestion de bases de
données, le déploiement continu, le développement d’applications temps réel, etc.
76
Webographie
❖ [4] Dr Nikolas Beutin and Maximilian Harmsen, Mars 2019 “Mobile payment report
2019”https://www.pwc.de/de/digitale-transformation/pwc-studie-mobile-payment-2019
.pdf, [consulté le 29/05/2020]
❖ [5] Luke Vu, 15 January 2020: “Main Advantages of Mobile Payment Systems”:
https://www.simicart.com/blog/mobile-payment-systems-advantages/,[consulté le
24/05/2020]
❖ [6] Julie le jeu, 02/08/2018 - 09:35: “Paiement mobile bonne ou mauvaise idée?”:
https://www.echosdunet.net/dossiers/paiement-mobile-bonne-ou-mauvaise-idee,
consulté le 23/05/2020.
❖ [7] Jamie Roberts, April 7th, 2013 “How do SMS payments work for users?”
https://www.mobiletransaction.org/how-do-sms-payments-work-for-users/,[consulté le
28/05/2020].
77
❖ [9] Techopedia 05 févriere 2018 “Client/Server
Architecture”:https://www.techopedia.com/definition/438/clientserver-architecture
[consulté le 23/05/2020].
❖ [12] Brad Travesty 04 Août 2017: “Mobile Apps - Web vs. Native vs. Hybrid”:
https://www.youtube.com/watch?v=ZikVtdopsfY [consultée le 12/05/2020].
❖ [13] Martin Aiguinis 17 Septembre 2019 “How is Flutter different for app
development” https://www.youtube.com/watch?v=l-YO9CmaSUM&t=149s [consultée
le 12/05/2020]
❖ [14] Squareup “What Are Mobile Payments? And How to Use Them”:
https://squareup.com/guides/mobile-payments [consulté le 14/05/2020]
78
❖ [18] William Craig “Native App vs. Mobile Web App: A Quick Comparison”
https://www.webfx.com/blog/web-design/native-app-vs-mobile-web-app-comparison/
[consulté le 13/05/2020].
❖ [22] Marc Knoll 4 décembre 2012 “Mobile Payment Overview: Definition, Trends
And Payment Systems”
https://trendblog.net/mobile-payment-overview-definition-trends-and-payment-system
s/ [consulté le 23/05/2020].
79
❖ [26] Franck Ledoux 2003 -2004 “DESS Bio -Informatique”:
https://www.cours-gratuit.com/cours-uml/cours-genie-logiciel-et-uml [consulté le
02/06/2020.]
❖ [28] Stéphane Jorge,” Qu'est-ce que le langage UML (langage de modélisation unifié)
?”: https://www.lucidchart.com/pages/fr/langage-uml [consulté le 05/06/2020]
❖ [33] Rémy Manu “UML : Langage de modélisation objet unifié Cours n°3 :
Diagramme des classes “: http://remy-manu.no-ip.biz/UML/Cours/coursUML3.pdf”
[consulté le 12/06/2020].
❖ [34] Pierre Gérard IUT de Villetaneuse DUT informatique, S2 2013 : “UML Cours 5 :
Diagramme de séquences”:
https://lipn.univ-paris13.fr/~gerard/uml-s2/uml-cours05.html. [consulté le 12/06/2020].
80
❖ [35] Laurent Dufour, le 13/09/2019, “Le Cahier Des Charges”:
https://www.leblogdudirigeant.com/le-cahier-des-charges, [consulté le 06/06/2020].
❖ [39] Łukasz Mądrzak 11/12/2019: “What is Laravel? Explain it like I'm five”:
https://dev.to/creativetim_official/what-is-laravel-explain-it-like-i-m-five-19eb [consulté
le 15/06/2020].
❖ [41] C.SOUTOU. Apprendre SQL avec MySQL Avec 40 exercice corrigés. Paris,
groupe Eyrolles, 2006.
❖ [43] Antoine Crochet-Damais, 01/02/19: “Visual Studio Code, l'IDE open source que
les développeur s'arrachent”:
https://www.journaldunet.com/web-tech/developpeur/1204957-visual-studio-code-l-id
e-open-source-que-les-devs-s-arrachent/ [consulté le 15/06/2020].
❖ [44] Aditya Sridhar 12/08/2018 “An introduction to Git: what it is, and how to use it”:
https://www.freecodecamp.org/news/what-is-git-and-how-to-use-it-c341b049ae61/
[consulté le 15/06/2020].
81
❖ [45] Parikshit Hooda “Introduction to Postman for API Development”:
https://www.geeksforgeeks.org/introduction-postman-api-development/. [consulté le
15/06/2020].
❖ [47] Phill Legget, 19 Juillet 2012, “Pusher Overview - Pusher Realtime Web
Workshop” https://www.youtube.com/watch?v=_3S9Z3NZKTU , [consulté le
15/06/2020].
❖ [49] débitoor, Paiement par carte bancaire - Qu'est-ce qu'un paiement par carte
bancaire:
“https://debitoor.fr/termes-comptables/paiement-carte-bancaire#:~:text=Paiement%20
par%20carte%20bancaire%20%2D%20Qu,ses%20achats%20chez%20un%20comm
er%C3%A7ant.&text=Une%20CB%20(carte%20bancaire)%20peut,%2C%20t%C3%
A9l%C3%A9phone%2C%20par%20correspondance)” , [consulté le 05/09/2020]
82
❖ [54] adnews by Galit, 05.08.2014 “CopSonic présente sa solution de paiement
mobile par ondes sonores” https://adn-co.news/actualites/details/6961 [consulté le
05/09/2020].
❖ [55] BFM, 05/04/2019 à 11h23 “Le virement instantané par mobile se généralise”:
https://rmc.bfmtv.com/emission/le-virement-instantane-par-mobile-se-generalise-166
7108.html ,[Consulté le 05/09/2020].
83