Intégration d`une solution de paiement en monnaie virtuelle

Transcription

Intégration d`une solution de paiement en monnaie virtuelle
Intégration d’une solution de
paiement en monnaie virtuelle
Stage de deuxième année
Clément CARDI
2A – Informatique Monétique
Année universitaire 2014/2015
Suivi entreprise : Charles TAURINES
Suivi ENSICAEN : Wilfried AUBRY
ENSICAEN
6, boulevard Maréchal Juin – CS 45 053 – F- 14050 Caen Cedex 4
Tél. +33 (0)2 31 45 27 50
Fax +33 (0)2 31 45 27 60
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
1 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
REMERCIEMENTS
Je tiens tout d’abord à remercier M. Alain LACOUR, PDG de Lyra Network, pour m’avoir accepté au
sein de son entreprise, et pour l’intérêt qu’il portait personnellement sur ce projet.
Je remercie également Charles TAURINES, mon encadrant de stage, ainsi que Frédéric BABEL, pour
m’avoir suivi et aidé tout au long de cette période.
Je remercie ensuite le support pour leurs interventions, et enfin l’intégralité de l’entreprise Lyra
Network pour leur accueil.
2 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
TABLE DES MATIERES
Remerciements
2
Table des matières
3
I.
Introduction
5
II.
Présentation de l’entreprise
6
III. Comparaison des principales crypto-monnaies
7
IV. Diffusion sur les plateformes de paiement en France
9
V. Fonctionnement de Bitcoin
10
1
Différences entre Bitcoin et les systèmes préexistants
10
2
Les transactions
11
3
La « blockchain »
12
4
Le Minage
14
5
La double dépense
15
6
Les « forks »
15
7
La confidentialité
16
8
Le portefeuille Bitcoin, ou « Wallet »
17
9
Le « Simplified Payment Verification »
18
VI. Etude des différentes solutions de paiement en bitcoins
19
1
Paymium
19
2
Coinbase
21
3
Intégration « manuelle »
22
VII. Intégration de l’API Paymium
24
1
24
Développement d’une application web
3 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
a
Le Web Client
25
b
La Web App
27
c
La Simulation
28
2
Utilisation via un module Prestashop
29
VIII. Intégration dans PayZen
30
1
Fonctionnement de la VAD
30
2
Fonctionnement d’un paiement
31
3
Démonstration de l’application
34
4
Problèmes rencontrés
37
IX. Conclusion
38
Annexes
40
4 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
I. INTRODUCTION
Dans cette ère où la protection de la vie privée et la surveillance de masse inquiètent de manière
grandissante, les crypto-monnaies attirent de plus en plus grâce à leurs principaux arguments :
anonymat et décentralisation. Mais au-delà de cet aspect, les crypto-monnaies sont avant tout une
innovation ouvrant la porte à de nombreuses possibilités.
Leur utilisation croissante attise l’intérêt de nombreuses entreprises, et plusieurs plateformes de
paiement commencent à proposer des paiements via monnaies virtuelles.
Le PSP (Payment Service Provider) PayZen propose un nombre important de moyens de paiement,
offrant ainsi un maximum de choix à ses clients. Dans cette optique, Lyra Network souhaite y intégrer
une monnaie virtuelle. Le choix de cette monnaie se fera à l’issue d’une comparaison des principales
crypto-monnaies, afin de déterminer celle étant la plus utilisée, et ayant une pérennité conséquente.
J’ai donc intégré l’équipe consacrée aux moyens de paiement, dirigée par Charles TAURINES, qui est
aussi mon encadrant, pour une période s’étalant du 4 mai au 14 août 2015.
5 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
II. PRESENTATION DE L’ENTREPRISE
Basée à Labège, près de Toulouse, l’entreprise Lyra Network est un opérateur monétique français qui
sécurise depuis 2001 les flux bancaires entre commerçants et banques. Leader en France, Lyra
Network est présent en Europe (France et Allemagne), mais également en Amérique (Brésil), en Asie
(Inde) et en Afrique (Algérie), grâce à ses différentes filiales.
Figure 1 - Siège de Lyra Network (Labège, France)
Lyra Network propose notamment PayZen, une solution de paiement en ligne innovante et sécurisée.
PayZen est une Plateforme de Paiement Sécurisée qui propose de nombreux types et moyens de
paiement pour le paiement à distance.
Figure 2 - Positionnement de Lyra Network en tant qu'opérateur monétique
6 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
III. COMPARAISON DES PRINCIPALES CRYPTO-MONNAIES
Une crypto-monnaie, ou monnaie virtuelle, est une monnaie électronique décentralisée utilisant la
cryptographie pour valider les transactions ainsi que sa génération. Bitcoin est devenue la première
monnaie virtuelle décentralisée en 2009. Elle fut suivie de nombreuses « altcoins », ou « bitcoin
alternatives », des monnaies directement dérivées du Bitcoin.
Les principales monnaies virtuelles (classées par capitalisation boursière, au 19/06) sont :
- Bitcoin (BTC)
- Ripple (XRP)
- Litecoin (LTC)
- Dogecoin (DOGE)
- BitShares (BTS)
- Stellar (STR)
- Dash (DASH)
- Nxt (NXT)
Monnaie
Virtuelle
Année de
Lancement
Capitalisation ($)
Valeur Unitaire ($)
Quantité Actuelle
(+Ajout Annuel)
Quantité
Maximale
Bitcoin
Ripple
Litecoin
Dogecoin
BitShares
Stellar
Dash
Nxt
2009
2012
2011
2013
2014
2014
2014
2013
3 565 m
355 m
115 m
21 m
20.6 m
18 m
16 m
14 m
249.50
0.01117
2.88
0.000212
0.008186
0.003775
2.95
0.014134
14.3 m
31.9 M
40 m
99.9 M (+ 5.25 M)
2.5 M
100.8 M (+1%)
5.5 m
1M
21 m
100 M
84 m
∞
?
∞
22 m
1M
Tableau 1 - Comparatif des principales monnaies virtuelles
7 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
La capitalisation boursière d’une monnaie est un bon moyen d’observer son importance, mais toutes
ces monnaies fluctuant beaucoup, d’autres données sont à prendre en compte. L’évolution du
nombre de transactions par jour en fait partie, elle permet d’évaluer son utilisation de manière
pertinente.
Figure 3 - Nombre de transactions journalières du Bitcoin, Litecoin, Dogecoin, Dash
Le graphe ci-dessus nous permet de constater que sur un an, le nombre de transactions journalières
du Bitcoin a plus que doublé, alors que ses 3 concurrentes (Litecoin, Dogecoin, Dash) n’ont au final
pas vu d’augmentation sur le long terme.
Cette donnée n’est pas directement comparable avec Ripple, BitShares, Stellar et Nxt, car ces
monnaies sont non minables, c’est-à-dire qu’elles ne sont pas distribuées de la même manière : c’est
pour certaines une entité centrale qui les contrôle.
Le Bitcoin est donc de loin la monnaie virtuelle la plus utilisée, et connaît une utilisation croissante.
De plus, son adaptabilité lui permet aussi d’intégrer des innovations intéressantes dont une nouvelle
monnaie pourrait faire preuve, assurant ainsi sa pérennité. Bitcoin n’étant pas contrôlé par une
entité, tout changement lui étant apporté nécessite un consensus de sa communauté.
8 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
IV. DIFFUSION SUR LES PLATEFORMES DE PAIEMENT EN FRANCE
Nous allons nous intéresser à la diffusion des différentes crypto-monnaies sur les principaux PSP
présents sur le marché français.
Au niveau des PSP appartenant à des banques françaises, nous retrouvons :
- Merc@net (BNP Paribas)
- E-transactions (Crédit Agricole)
- Webaffaires (Crédit du Nord)
- Scellius (La Banque Postale)
- Sherlock’s (Le Crédit Lyonnais/LCL)
- Sogenactif (Société Générale)
- Citelis (Crédit Mutuel/CIC)
- CyberPlusPaiement (PayZen sous marque blanche, par Banque Populaire)
- SPPlus (Caisse d’Epargne)
A cette liste s’ajoutent ensuite :
- Adyen
- Paybox
- ATOS Wordline
- PayPal
- BrainTree (PayPal)
- Stripe
- Ogone
- Ingenico
Parmi tous ces PSP, seul Stripe permet officiellement le paiement en bitcoins. En effet, BrainTree
n’est qu’en phase bêta d’intégration, via Coinbase ; tout comme Adyen qui l’est via BitPay. Il y a
toutefois Ingenico qui le permet en paiement de proximité, via la solution Paymium.
Il y a donc peu de PSPs proposant le paiement en bitcoins, et aucune autre monnaie virtuelle n’est
supportée.
9 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
V. FONCTIONNEMENT DE BITCOIN
Conçu en 2009 par un développeur ou groupe de développeurs non identifié utilisant le pseudonyme
de Satoshi Nakamoto, Bitcoin désigne un système de paiement à travers le réseau Internet et le
bitcoin est l’unité de compte utilisée par ce système de paiement.
Il y existe actuellement environ 14,4 millions de bitcoins, sur un maximum de 21 millions. Il est estimé
que ce maximum sera atteint aux alentours de 2140. De plus, le bitcoin possède huit décimales,
repoussant sa limite unitaire à 2.099.999.997.690.000 satoshis (nom utilisé pour désigner 10-8
bitcoin).
1 DIFFERENCES ENTRE BITCOIN ET LES SYSTEMES PREEXISTANTS
Bitcoin est différent des systèmes préexistants, il s’en distingue sur les points suivants :
• Contrairement aux devises classiques, Bitcoin n’est pas contrôlé par une autorité centrale,
mais par l’ensemble de ses utilisateurs. Sa valeur est déterminée par son usage économique,
et son émission monétaire est définie par un procédé suivant des règles cryptographiques.
• Bitcoin se différencie des autres systèmes de paiement par le fait qu’il soit totalement
décentralisé, et l’ensemble des transactions est public.
• Bitcoin utilise un protocole cryptographique pour empêcher les doubles paiements ainsi que
pour rendre impossible la falsification du stock de bitcoins figurant dans les porte-monnaie
électroniques.
10 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
2 LES TRANSACTIONS
Figure 4 - Transaction Bitcoin
Un bitcoin en tant que tel n’existe pas. Une adresse Bitcoin ne « contient » pas vraiment de bitcoins,
et il n’existe pas de fichier les « contenant ».
Les bitcoins sont le résultat de suites de transactions. Pour établir le solde d’une adresse, il faut faire
le total de toutes les transactions impliquant cette adresse. Ceci est rendu possible par la chaine de
blocs (appelée blockchain) qui est un grand livre comptable partagé qui contient toutes les
transactions, lesquelles sont donc publiques. De ce fait, chaque nœud du réseau Bitcoin qui conserve
cette chaine peut connaitre le solde de chaque adresse.
Une transaction ne traite pas directement des adresses mais plutôt des transactions antérieures (Cf.
Figure 5). Par conséquent, les entrées sont des références à des transactions existantes, qui indiquent
d'où provient la somme totale qui va maintenant être dépensée, vers une ou plusieurs adresses.
Figure 5 - Liens entre transactions Bitcoin
11 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Une fois la transaction créée, elle va être chiffrée grâce à la clé privée de l’émetteur, et envoyée sur
le réseau Bitcoin. Chaque nœud va vérifier, grâce aux différentes signatures et à la clé publique de
l’émetteur, que la transaction est valide. Si c'est le cas, elle sera ajoutée à la blockchain et propagée
de nœud en nœud.
3 LA « BLOCKCHAIN »
Pour être entérinée, chaque transaction doit être incluse dans un bloc de transactions. Un bloc n'est
rien d'autre qu'une structure de données qui contient une liste de transactions récentes ainsi qu'un
hash du bloc précédent. Chaque nouveau bloc est donc ajouté au bout d'une longue chaine de blocs,
la « blockchain », qui remonte jusqu’à la création de Bitcoin, quand le premier bloc a été créé par les
inventeurs du protocole.
Figure 6 - Chaine de blocs
Le contrôle d'intégrité des blocs est inclus dans la structure de données même. Un nœud ne peut pas
modifier une transaction sans modifier le hash du bloc (Cf. Figure 6), car cela invaliderait tous les
blocs suivants.
Lorsqu'une transaction est créée, elle est diffusée de nœud en nœud dans le réseau. Chaque nœud
cherche à créer un bloc avec toutes les transactions valides reçues récemment. Quand un bloc est
créé, il est immédiatement transmis au réseau.
12 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Quand un nœud reçoit un bloc en provenance d'un autre nœud, il stoppe son propre travail de
création de bloc et le vérifie. Si le nouveau bloc est valide, il est intégré à la blockchain, et le travail
reprend sur cette nouvelle base. En quelques minutes, l'information s'est propagée et tous les nœuds
ont intégré ce nouveau bloc à la fin de leur copie locale de la blockchain.
La création d’un bloc est rendue volontairement très difficile, sa difficulté varie pour faire en sorte
qu’un bloc ne puisse être créé que toutes les 10 minutes en moyenne. Le procédé qui consiste à créer
un bloc à partir d'une liste de transactions s'appelle le minage. C’est un système de consensus
distribué utilisé pour confirmer les transactions. Il consiste à trouver une valeur arbitraire (nonce)
qui, intégrée au contenu du bloc, produise un hash ayant une certaine caractéristique.
Figure 7 - Découverte d'un nonce conforme
Le but est de trouver une valeur de nonce telle que le hash du bloc soit inférieur à une certaine valeur.
En pratique, cela implique que le hash doit commencer par un certain nombre de zéros (Cf. Figure 7).
Il est impossible de calculer la bonne valeur de nonce, les nœuds testent donc des valeurs aléatoires,
jusqu’à trouver une valeur correcte sur des milliards, en concurrence avec tous les autres nœuds du
réseau. On appelle cela la preuve de travail.
Au 22/07/2015, la totalité du réseau Bitcoin a une capacité de calcul d’environ 380 PH/s (Péta hash
par seconde), soit 380 billiards, ou encore, 380 millions de milliards de hash par seconde.
13 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
4 LE MINAGE
Comme indiqué précédemment, le minage consiste à effectuer de nombreux calculs pour trouver
une valeur. Ces calculs sont coûteux en ressources, notamment en électricité pour les mineurs qui
disposent parfois de véritables plateformes dédiées au minage. Alors qu’y gagnent-ils ?
Figure 8 - Plateforme de minage
Le minage est le procédé par lequel de nouveaux bitcoins sont injectés dans le réseau. Les quatre
premières années, chaque bloc rapportait 50 BTC, les quatre suivantes, 25, et ainsi de suite. Un bloc
étant miné toutes les 10 minutes environ, cela signifie qu’actuellement, 3600 nouveaux bitcoins sont
injectés dans le réseau chaque jour.
Mais ce n’est pas tout, les mineurs récupèrent aussi les frais des transactions incluses dans leur bloc.
Chaque utilisateur est libre de rajouter ou non des frais à chacune de ses transactions. Cependant,
dans la mesure où rien n’oblige un mineur à inclure une transaction particulière dans un bloc, prévoir
des frais de transaction assure l’émetteur que sa transaction sera traitée rapidement.
Il est estimé que le dernier bitcoin sera miné aux alentours de 2140, portant ainsi le nombre de
bitcoins à 21 millions. Le bitcoin étant divisible jusqu’à la huitième décimale, cette limite ne pose pas
vraiment de problèmes.
14 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
5 LA DOUBLE DEPENSE
La double dépense est l’utilisation d’un même argent pour effectuer plusieurs transactions. C’est un
problème qui a longtemps empêché l’émergence des monnaies virtuelles. Bitcoin s’en protège de la
manière suivante :
Figure 9 – Cas d’une tentative de double dépense
Un acheteur diffuse deux transactions, l’une au vendeur A, l’autre au vendeur B. Chacun des deux
vendeurs l’ajoute dans un bloc qu’il essaie de créer. Imaginons que le vendeur A parvienne le premier
à créer ce bloc. Ce bloc, qui contient une des deux transactions, est immédiatement diffusé. Le
vendeur B reçoit le bloc, le reconnait comme valide, et est maintenant capable de détecter que la
deuxième transaction de l’acheteur est invalide.
6 LES « FORKS »
Plaçons-nous dans le cas où les deux blocs ont été créés en même temps. Les deux transactions ont
été confirmées, alors que se passe-t-il ?
Figure 10 - Exemples de forks possibles
15 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Chaque nœud va arbitrairement choisir de considérer l’un ou l’autre bloc comme le véritable dernier
bloc, et continuer la chaine au bout de ce dernier. Un bloc va ensuite être créé par un de ces nœuds,
rendant ainsi une des chaines plus longues que l’autre. Le protocole Bitcoin stipulant que la chaine
la plus longue est la chaine officielle, l’autre est abandonnée (Cf. Figure 9).
Et si quelqu’un souhaitait créer sa propre chaine, et dépasser la chaine officielle, il lui faudrait miner
plus rapidement que le réseau. Concrètement, cela implique qu’il lui faudrait plus de la moitié de la
puissance de calcul de tout le réseau.
7 LA CONFIDENTIALITE
En ce qui concerne la confidentialité, ce système sépare les transactions des identités, contrairement
au système classique (Cf. Figure 11).
Figure 11 - Modèles de confidentialité
Comme énoncé précédemment, l’intégralité des transactions est visible, ce qui comprend les
montants et adresses d’échange, cela pourrait poser problème. Toutefois, la création d’adresse est
privée et anonyme. Cela signifie qu’à partir du moment où quelqu’un parvient à faire un lien entre
une personne et une certaine adresse, il devient possible de tracer tout l’historique de toutes les
transactions concernant cette adresse, et d’en extraire certaines informations. Il est donc possible
de garder un certain niveau de confidentialité en utilisant le Bitcoin, mais cela nécessite de la
prudence.
16 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
8 LE PORTEFEUILLE BITCOIN, OU « WALLET »
Bitcoin utilise la cryptographie asymétrique : une adresse publique Bitcoin peut être utilisée pour
recevoir des bitcoins mais il faut connaître la clé privée associée pour pouvoir les dépenser. De plus,
pour des raisons de protection de la vie privée, il est conseillé de créer une nouvelle adresse pour
chaque transaction.
En manipulant Bitcoin régulièrement, un utilisateur peut donc
rapidement se retrouver avec des bitcoins répartis sur un grand
nombre d’adresses.
C’est là que le portefeuille Bitcoin trouve son intérêt : il s’agit d’un
logiciel permettant de manipuler des bitcoins. Il permet donc de
consulter facilement son solde total, ainsi que d’effectuer des
paiements sans avoir à gérer les adresses individuellement.
Un
portefeuille
Bitcoin
peut
également
fournir
d'autres
fonctionnalités : génération de nouvelles adresses, chiffrement et
sauvegarde des adresses privées, génération de QR codes, etc. Il en
existe beaucoup, en application Web, mobile, ou logicielle, chacun
pouvant proposer des fonctionnalités différentes.
Figure 12 - Portefeuille Bitcoin mobile
17 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
9 LE « SIMPLIFIED PAYMENT VERIFICATION »
Figure 13 - Fonctionnement du Simplified Payment Verification
Il existe notamment les portefeuilles utilisant le SPV (Simplified Payment Verification), permettant
de ne télécharger que les en-têtes de la blockchain. Cela permet de porter des portefeuilles sur des
appareils plus limités en espace de stockage, comme les smartphones. Un client n’ayant que les entêtes de la blockchain ne peut pas vérifier les transactions, mais en la plaçant dans la chaîne, il peut
vérifier que le réseau l’accepte.
18 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
VI. ETUDE DES DIFFERENTES SOLUTIONS DE PAIEMENT EN BITCOINS
D’une manière générale, un utilisateur souhaitant payer en bitcoins verra un montant, une adresse,
et un QR Code, comme dans l’image ci-dessous.
Figure 14 - Page de paiement Bitcoin
En France, il existe peu de solutions permettant à un marchand d’accepter le paiement en bitcoins
et de pouvoir recevoir des euros.
1 PAYMIUM
Paymium, société française, est une place de marché en ligne
bitcoins – euros. Ils proposent aussi un service permettant aux ecommerçants d'accepter les paiements Bitcoin sur leurs sites. Les
règlements qu'ils encaissent peuvent être immédiatement
convertis en euros, rendant l'utilisation d'une monnaie
alternative totalement transparente pour eux.
Figure 15 - Logo de Paymium
19 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Le fonctionnement du système est également très accessible pour
l'acheteur : au moment de régler son achat, dont le prix reste
affiché en euros, il choisit l’option « Payer en bitcoins » et se voit
afficher une facture comportant la contrevaleur en bitcoins
(calculée automatiquement selon le cours en vigueur) et l'adresse
à laquelle il doit transférer les fonds. Une fois la transaction
exécutée, la commande est validée et le compte du marchand est
approvisionné du montant en euros initial lors de la première
confirmation du réseau Bitcoin, toute éventuelle variation de
cours dans l'intervalle étant prise en charge par Paymium.
Figure 16 - Facture de Paymium
Tout client chez Paymium se voit ouvrir un compte de paiement chez l’établissement de paiement
Lemon Way lié à son compte. Chaque transaction reçue y est déposée en euros (Frais d’échanges de
0,59%) si le marchand souhaite recevoir des euros. Il est possible d’alimenter ce compte via virement
SEPA sans commission, mais tout virement SEPA sortant présente une commission de 0,99 €.
Le compte de paiement d’un client peut aussi stocker des bitcoins, qu’il peut retirer s’il le souhaite.
Cependant, toute demande de retrait est effectuée trois fois par jour par Paymium, dans une limite
journalière de 5 bitcoins. Il s’agit donc d’un portefeuille Bitcoin très limité, car peu pratique pour
l’utilisateur.
Pour les développeurs, une API publique et sa documentation technique sont disponibles sur GitHub.
Ils proposent de plus un environnement de test ou « sandbox ».
20 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
2 COINBASE
Coinbase est une société américaine proposant :
-
Une plateforme d’échange entre bitcoin et autres devises monétaires
-
Un portefeuille Bitcoin (Application web et mobile)
-
Une intégration aisée pour les marchands
-
Une API
-
Un environnement « sandbox »
Figure 17 - Logo de Coinbase
Avec cette solution, un marchand a le choix entre garder les bitcoins qu’il reçoit ou les échanger
immédiatement en euros avec une commission de 1% + 0,15 €. Il n’y a aucun frais pour le premier
1.000.000 € de paiements en bitcoins, ensuite s’applique le tarif ci-dessus pour convertir
instantanément des bitcoins en euros ou autre devise.
Les transactions effectuées pendant la journée sont en réalité envoyées en fin de journée (2pm PST
soit 23h GMT+2), et apparaissent directement sur le compte bancaire courant du marchand en 2
jours ouvrés.
Le marchand a aussi la possibilité de ne garder qu’un montant minimum sur son portefeuille Bitcoin,
le surplus reçu sera donc converti et envoyé en euros sur son compte. Il peut aussi garder un
pourcentage de chaque transaction en bitcoins sur son portefeuille.
21 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Figure 18 - Facture de Coinbase
3 INTEGRATION « MANUELLE »
L’intégration « manuelle », sans passer par un tiers, est plus technique, complexe, et long d’autant
plus que Bitcoin ne présente pas de documentation officielle. Il existe cependant plusieurs librairies
facilitant cette intégration, comme par exemple bitcoinj, une librairie java développée notamment
par un développeur majeur de Bitcoin.
Pour se passer d’un tiers, il faut permettre trois types de paiement :
-
Paiement BTC -> BTC : Paiement en bitcoins d’un produit vendu en bitcoins
-
Paiement (EUR) BTC -> BTC : Paiement en bitcoins d’un produit vendu en euros, le
marchand reçoit des bitcoins
-
Paiement (EUR) BTC -> (BTC) EUR : Paiement en bitcoins d’un produit vendu en euros,
le marchand reçoit des euros
Pour permettre ces paiements, il faut développer un portefeuille Bitcoin relativement basique :
création d’adresses, créations de transactions, etc.
22 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Il est très important de sécuriser ces portefeuilles, par exemple avec du stockage à froid (wallet
déplacé sur clé USB, hardware wallet…), ou de la multi-signature (Nécessite plusieurs signatures pour
l’envoi de bitcoins. Le plus populaire est le 2-3 : l’utilisateur possède une clé privée, l’entité
hébergeant le wallet en possède une, et les deux possèdent la dernière qui est chiffrée avec un mot
de passe connu uniquement de l’utilisateur ; deux clés sur les trois sont nécessaires pour permettre
l’envoi de bitcoins).
Enfin, sans être mineur, il est nécessaire de faire tourner un nœud, parmi ces types possibles :
-
Nœud complet avec port 8333 ouvert. Ce nœud contient la blockchain complète, se
connecte au réseau et permet aux autres nœuds de se connecter à soi, relaie les
transactions et d’autres données. Il valide de plus les blocs et transactions ce qui
accroit la sécurité. Attention tout de même, l’ouverture du port acceptant les
connexions extérieures, il est plus sûr de ne pas garder de données confidentielles sur
cet ordinateur.
-
Nœud complet avec port 8333 fermé. Ce nœud contient la blockchain complète, mais
ne transmet que peu de données car empêche les connexions entrantes. Il permet
toujours de valider les blocs et transaction.
-
Nœud SPV. Ce nœud ne contient que les en-têtes de la blockchain, ce qui le rend
dépendant des autres nœuds pour la vérification complète des transactions. Il ne
transmet que peu de données.
23 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
VII. INTEGRATION DE L’API PAYMIUM
Le choix de Paymium n’a pas été mien, il est provenu d’une communication déjà existante entre cette
société et Lyra Network, ainsi que d’un léger sentiment de nationalisme, Paymium étant une société
française !
1 DEVELOPPEMENT D’UNE APPLICATION WEB
Ma première mission a donc consisté à développer une application web indépendante de la
plateforme PayZen, permettant l’utilisation de l’API Paymium. Cette API permet l’utilisation d’un
compte pour créer et lire des paiements, consulter son solde, son activité, etc.
Figure 19 - Architecture de l'application
Afin de permettre l’intégration future dans la plateforme, mon développement s’est divisé en trois
parties :
- Le Web Client, qui envoie les requêtes vers Paymium ou la partie Simulation en fonction du
type d’utilisation, et en récupère les réponses.
- La Web App, qui comprend l’interface web ainsi que la connexion avec le Web Client
- La partie Simulation, permettant simplement de vérifier le fonctionnement de l’application
à travers des réponses préétablies. Cette partie était nécessaire notamment dû à des
problèmes réseaux empêchant l’interconnexion avec Paymium.
24 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
a
LE WEB CLIENT
Comme dit précédemment le Web Client envoie les requêtes à Paymium et en récupère les réponses.
Il doit donc créer des requêtes, y placer les paramètres adéquats, et l’envoyer à une adresse indiquée.
Le tableau répertoriant les requêtes possibles est disponible en annexe (Cf. Tab. 2).
Pour la majorité de ces requêtes, il est nécessaire de s’authentifier. Pour ce faire, il y a deux
méthodes :
- L’OAUTH2 (Open Authentication 2). Cette méthode est plus adaptée lorsque l’utilisateur
souhaite donner temporairement l’accès à son compte à une application. Il peut de plus
définir les permissions de cet accès.
Figure 20 - Authentification par Open Authentication 2
En choisissant l’OAuth2, l’utilisateur doit entrer une clé publique, une clé privée, ainsi que choisir les
permissions qu’il accorde à l’application pour cette session. Il envoie ensuite le formulaire à
l’application, laquelle le redirige vers Paymium, pour qu’il autorise ou non l’application à utiliser son
compte.
Si l’utilisateur accepte, il est redirigé vers l’application avec un code. Cette dernière utilise le code
avec les paramètres passés par l’utilisateur pour demander un token d’accès à Paymium. Paymium
renvoie notamment un token d’accès et un refresh token, valides pendant 30 minutes.
25 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Pour réinitialiser cette durée pendant cette période, il est possible de rafraîchir l’authentification en
renvoyant une requête à Paymium avec le refresh token.
- L’API Token, ou HMAC (keyed-Hash Message Authentication Code) Authentication, est créé
directement sur le site de Paymium, une fois connecté. Ce token n’a pas de limite dans le
temps, et les permissions qu’il accorde sont définies lors de sa création. Paymium fournit
une clé publique et une clé privée lors de la création d’un token.
Figure 21 - Authentification par API Token
En choisissant l’API Token, l’utilisateur entre sa clé publique et sa clé privée. L’application effectue
ensuite les requêtes correspondantes aux permissions accordées, tant que le token n’est pas
supprimé par l’utilisateur sur le site de Paymium.
Pour utiliser ce token, il faut placer trois en-têtes dans les requêtes nécessitant une authentification :
- Une nonce, qui est une valeur devant être unique pour chaque requête. Ici, l’application
récupère l’heure actuelle en millisecondes.
- La clé publique.
- La signature HMAC-SHA256 de la nonce concaténée avec l’URL de la requête et le corps de
la requête, chiffrée avec la clé privée.
Cette méthode est donc la plus adaptée à une application devant être capable de créer des paiements
à tout moment, telle qu’une application marchande.
26 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Par la suite, l’envoi de paramètres POST doit être effectué au format JSON, tout comme les réponses
de Paymium le sont. Par exemple, la réponse de Paymium à une requête de lecture des informations
du compte utilisateur est de la forme suivante :
Figure 22 - Informations sur le compte utilisateur par Paymium
b
LA WEB APP
La Web App comprend l’ensemble des fichiers permettant l’affichage web de l’application, ainsi que
des servlets permettant la liaison avec chaque fonction du Web Client.
L’interface permet un affichage relativement basique des résultats des requêtes, et propose sur la
page d’accueil, une fois l’utilisateur authentifié, plusieurs exemples de produits achetables en
bitcoins (Cf. Figure 23). L’interface a été entièrement développée de manière autonome, avec une
légère utilisation de Bootstrap et de JQuery.
L’application comprend également deux filtres : l’un forçant l’utilisation du protocole SSL sur le site, le second
bloquant une large partie du site à tout utilisateur non authentifié. Seul l’accès aux requêtes Paymium ne
nécessitant pas d’authentification n’ont pas de restriction.
27 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Figure 23 - Aperçu de l'application
c
LA SIMULATION
La partie simulation n’a pas été développée très en profondeur. Elle permet simplement de simuler
Paymium dans le contenu des échanges. Cela permet de tester une partie de l’application quand la
sandbox de Paymium est hors-ligne ou quand seul l’affichage graphique a besoin d’être modifié.
Aucune base de données n’est utilisée dans cette partie, les réponses sont arbitraires et ne
dépendent que très peu des paramètres envoyés.
28 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
2 UTILISATION VIA UN MODULE PRESTASHOP
Une fois la première partie effectuée, il m’a été demandé d’installer Prestashop, une application web
permettant de créer une boutique en ligne e-commerce. Le but était d’utiliser le module Prestashop
développé par Paymium pour le rediriger vers mon application afin d’effectuer le paiement, puis de
rediriger vers Prestashop. Cette partie n’a donc pas d’intérêt particulier par rapport à une solution
appelant Paymium directement via le module car elle perd en sécurité, mais est intéressante
techniquement.
Figure 24 - Fonctionnement du module Prestashop
29 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
VIII. INTEGRATION DANS PAYZEN
Pour intégrer un nouveau moyen de paiement dans PayZen, j’ai inauguré une méthode qu’ils ont
développée afin de pouvoir l’implémenter sans avoir l’application PayZen (appelée VAD pour Vente
à Distance) installée sur mon poste. La VAD tournait donc sur un environnement de qualification
accessible par le réseau.
Cette méthode facilite l’intégration d’un nouveau moyen de paiement car elle évite d’avoir à installer
et configurer la VAD sur son propre poste, ainsi que d’y former l’utilisateur.
L’ajout d’un moyen de paiement dans la VAD consiste donc à développer une application dédiée qui
communique depuis un poste vers un serveur contenant la VAD.
1 FONCTIONNEMENT DE LA VAD
La VAD définit une SPI (Service Provider Interface) REST qui doit être implémentée dans l’application
afin d’être appelée. L’application ne contacte pas directement la VAD, sa seule communication dans
ce sens se limite à l’appel d’une URL « pingback » fournie par la VAD.
En plus de la réalisation de l’API, l’application doit également fournir les fichiers nécessaires à
l’affichage des pages spécifiques au moyen de paiement.
Figure 25 - Liens entre la VAD et l'application
30 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
L’intégration de l’application s’intègre dans la cinématique de paiement de la façon suivante :
1. Soumission du formulaire de paiement
2. Choix du moyen de paiement
3. Création du contexte de paiement dans l'application dédiée
4. Prise en charge du paiement par l'application dédiée (cinématique, appels serveurs
externes, etc.)
5. Reprise du contrôle par la VAD
6. Synchronisation des données entre VAD & Application dédiée
7. Finalisation du paiement & affichage du ticket
Nous allons voir comment Bitcoin s’inscrit dans cette cinématique par rapport à un moyen de
paiement classique.
2 FONCTIONNEMENT D’UN PAIEMENT
Lors de la sélection du moyen de paiement Bitcoin, la VAD invoque l’application pour créer un
PaymentResource à partir des éléments basiques du paiement. Ensuite, elle invoque de nouveau
l’application pour créer un WebPaymentResource, qui est lié au PaymentResource mais contient des
informations nécessaires à l’affichage de la page de paiement.
Lors de sa création, l’application possède enfin tous les paramètres nécessaires à l’envoi d’une
requête de création de paiement à Paymium, et l’effectue. Paymium nous répond donc avec les
paramètres du paiement. Ils nous envoient également un callback que nous vérifions en leur
envoyant une requête de lecture du paiement.
Lors de l’affichage de la demande de paiement, la VAD effectue une lecture du WebPaymentResource
afin de récupérer les données nécessaires. Elle utilise de plus un fichier modèle, un fichier JavaScript,
et un fichier CSS, développés dans l’application.
L’utilisateur n’a pas de formulaire à remplir, il doit créer une transaction Bitcoin et la transmettre au
réseau. Lorsque le nœud contrôlé par Paymium la détecte, ils effectuent un callback nous indiquant
le changement d’état du paiement (celui-ci passe de l’état « pending_payment » à « processing »).
Suite à ce callback, nous envoyons tout d’abord une requête à Paymium pour s’assurer de la validité
de ce callback, avant de mettre à jour le paiement et de prévenir la VAD.
31 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Cette dernière va alors envoyer une requête de lecture à l’application, puis valider le paiement. Ceci
permettra de rediriger l’acheteur vers un ticket.
Lors de la réception du callback de Paymium indiquant l’état « paid » du paiement (ceci a lieu après
la première confirmation du réseau Bitcoin), et vérification de cette callback, l’application prévient
de nouveau la VAD, qui, après une nouvelle requête de lecture à l’application, va confirmer le
paiement.
Si le paiement n’a pas été effectué par l’utilisateur, Paymium envoie un callback avec l’état
« expired » et on décline le paiement.
32 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Figure 26 - Fonctionnement de l'application
33 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
3 DEMONSTRATION DE L’APPLICATION
Figure 27 - Page de choix du moyen de paiement
Lors de l’achat d’un produit, l’acheteur se verra proposé le moyen de paiement « Bitcoin » parmi les
choix possibles.
Figure 28 - Page de paiement Bitcoin avec montant initial en euros
Une fois sélectionné, l’acheteur arrive sur la page ci-dessus. En plus du montant en euros toujours
affiché sur la gauche, cette page contient aussi le logo Bitcoin, le montant correspondant en bitcoins,
le nom du marchand, l’adresse Bitcoin du vendeur ainsi que son QR Code correspondant.
34 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Contrairement à la majorité des moyens de paiements, l’utilisateur ne soumet pas de formulaire car
il n’a aucune donnée à fournir. Pour pouvoir payer, il doit créer une transaction Bitcoin, avec le
montant et l’adresse correspondants. Pour ce faire, il doit utiliser un portefeuille Bitcoin : soit il
scanne le QR Code, soit il rentre manuellement les informations affichées, soit il clique sur le QR Code
s’il dispose d’un portefeuille installé sur son appareil (une demande d’ouverture d’un client Bitcoin
sera affichée).
Une fois la transaction créée et envoyée sur le réseau, l’application attend une réponse de Paymium
pour pouvoir continuer.
Figure 29 - Ticket d’un paiement Bitcoin
Peu après l’envoi de la transaction sur le réseau Bitcoin, Paymium renvoie un callback nous indiquant
que la transaction est en attente de confirmation. Nous affichons alors à l’acheteur un ticket
récapitulant sa commande.
35 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Figure 30 - Page de paiement Bitcoin, avec montant initial en bitcoins
Dans le cadre de l’achat d’un produit vendu en bitcoins, l’affichage est le même excepté la devise. En
effet, nous affichons le montant dans la devise Bitcoin. Sur la figure ci-dessus, l’affichage devrait être
0,026 109 BTC, mais nous affichons à la place 26, 109 XXX pour des raisons expliquées dans la partie
suivante.
36 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
4 PROBLEMES RENCONTRES
Comme de nombreuses applications Java, la VAD utilise les librairies développées par Oracle. Une
classe de cette librairie, « java.util.Currency », est utilisée pour traiter les devises. Elle pose plusieurs
problèmes par rapport au Bitcoin.
Le premier problème provient du fait que cette classe se base sur la norme ISO 4217 pour identifier
les devises, or, Bitcoin n’est pas une devise reconnue et ne possède donc pas de code numérique ni
de code alphanumérique officiels. De plus, le code « BTC » rentre en conflit avec ISO 4217 car les
deux premières lettres sont « BT », correspondant au Bhoutan ; « XBT » serait mieux adapté et est
utilisé par certaines entités, mais pas par la majorité de la communauté qui lui préfère « BTC ».
L’utilisation du code numérique 999, correspondant au code « XXX » (et officiellement à l’absence de
devise), a permis de contourner ce problème dans un cadre de test. Une solution plus pérenne devra
être trouvée pour passer le projet en production, comme étendre la classe « Currency », si l’ISO
n’intègre pas le Bitcoin.
Le second problème, provenant de la même classe, est lié aux nombre de décimales. En effet, la
classe Java ne permet que 3 décimales, ce qui est incompatible avec les 8 que possède le Bitcoin.
Pour contourner ce problème, la VAD utilise les 3 décimales proposées, et affiche officieusement des
millibitcoins. On ignore donc les 2 dernières décimales de la devise. Paymium les ignorant de même
lors des réponses qu’ils émettent, cela n’a pas d’impact négatif pour le moment.
37 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
IX. CONCLUSION
Ce stage a été une expérience unique qui m’a beaucoup apporté tant sur le plan professionnel que
personnel.
Ce fut une opportunité pour apprendre le fonctionnement du Bitcoin et son placement par rapport
aux autres crypto-monnaies. Son implémentation en tant que moyen de paiement sur une
plateforme aussi développée que PayZen fut très intéressante et enrichissante. L’enseignement en
monétique de l’ENSICAEN fut une base solide pour comprendre le fonctionnement des moyens de
paiement traditionnels et les comparer au Bitcoin.
J’ai également eu l’occasion de mettre en pratique mes compétences en Java/J2EE ainsi que de les
perfectionner.
Ce projet ne pourra toutefois passer en production qu’après reconnaissance du Bitcoin comme
devise ISO 4217 par l’Organisation Internationale de Normalisation, ou modifications au niveau de la
plateforme, ce qui est plus envisageable.
38 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
39 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
ANNEXES
Annexe 1 - Sources
http://www.lyra-network.com
https://payzen.eu
http://coinmarketcap.com
http://cryptmarketcap.com
https://bitinfocharts.com/comparison/transactions-btc-ltc-doge-dash.html
https://stripe.com/bitcoin
https://www.braintreepayments.com/features/coinbase
https://www.adyen.com/home/about-adyen/press-releases/bitcoin-payments-for-jagex
http://blog.paymium.com/2015/01/22/ingenico-group-and-paymium-team-up-to-integratebitcoin-payments-on-the-telium-tetra-next-generation-terminals
https://bitcoin.org
https://en.bitcoin.it/wiki/Main_Page
http://blog.apollo-formation.com/bitcoin-monnaie-virtuelle-de-demain
http://www.miximum.fr/bitcoin-comment-ca-marche.html
http://www.miximum.fr/le-point-sur-les-portefeuilles-bitcoin.html
https://wiki.unsystem.net/en/index.php/DarkWallet/Stealth
http://www.ybrikman.com/writing/2014/04/24/bitcoin-by-analogy/
https://paymium.com/
http://cestpasmonidee.blogspot.fr/2014/07/paymium-invite-le-bitcoin-dans-le-e.html
https://www.coinbase.com
http://www.tigerdirect.com/bitcoin/help.asp
https://en.wikipedia.org/wiki/ISO_4217
http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html
40 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Annexe 2 – Evolution du prix du Bitcoin, en dollars
Annexe 3 – Contenu d’un bloc
Annexe 4 – Contenu d’un en-tête de bloc
41 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Annexe 5 – Requêtes Paymium possibles et leurs paramètres
Request
Method
Parameters
Address
Response
Read ticker
GET
None
/api/v1/data/eur/ticker
A ticker
Read trades
GET
None
/api/v1/data/eur/trades
An array of trades
Read market
depth
GET
Nonne
/api/v1/eur/depth
An array of bids
and an array of
asks
Read user info
GET
Authorization
/api/v1/user
A user info
/api/v1/user/orders
An array of
orders
/api/v1/user/orders/{UUID}
An order
/api/v1/user/orders
An order
/api/v1/user/orders
An order
/api/v1/user/orders/{UUID}/cancel
None
/api/v1/user/addresses/{btc_address}
A bitcoin address
Read user activity
GET
Read order
GET
Create trade
order
POST
Withdraw
POST
Delete order
DELETE
Read bitcoin
address
GET
Read bitcoin
addresses
Create bitcoin
address
Authorization
and 4 optional
parameters
Authorization
and 1 parameter
in the path
Authorization
and 4-6
parameters
Authorization
and 3-4
parameters
Authorization
and 1 parameter
in the path
Authorization
and 1 parameter
in the path
GET
Authorization
/api/v1/user/addresses
An array of
bitcoin addresses
POST
Authorization
/api/v1/user/addresses
A bitcoin address
/api/v1/merchant/create_payment
A payment
/api/merchant/get_payment/{UUID}
A payment
Create payment
POST
Read payment
GET
Authorization
and 3-6
parameters
Authorization
and 1 parameter
in the path
L’URL de base est https://sandbox.paymium.com
42 / 46
Intégration d’une solution de paiement en monnaie virtuelle
Clément CARDI, 2A Informatique Monétique, ENSICAEN
Annexe 6 – Diagramme de Gantt
43 / 46
Intégration d’une solution de paiement en monnaie virtuelle Clément CARDI
1/1
Intégration d’une solution de paiement en monnaie virtuelle Clément CARDI
RESUME EN FRANÇAIS
Ce rapport traite d’un stage sur les monnaies virtuelles et l’intégration du Bitcoin dans la
plateforme de paiement PayZen, produit de l’opérateur monétique leader en France Lyra
Network. Ce stage a débuté par une comparaison des principales monnaies virtuelles ainsi que
leur diffusion sur les principaux Payment Service Providers présents en France. S’en est suivie
une étude de la crypto-monnaie la plus importante et la plus utilisée, le Bitcoin, et une
recherche sur les principaux moyens de l’intégrer en tant que moyen de paiement. Enfin, la
partie développement a commencé par une application web indépendante implémentant
l’API de la solution Paymium, suivie par la modification d’un module PrestaShop. La partie la
plus importante étant finalement l’intégration de cette solution dans la plateforme PayZen.
Mots clés : monétique, crypto-monnaie, Bitcoin, java
SUMMARY
This is internship report about cryptocurrencies and integration of Bitcoin in the payment
platform PayZen, a product by the leader in France in routing bank-transactions, Lyra Network.
This internship started with a comparison of the main cryptocurrencies and their spreading in
the main Payment Service Providers available in France. This was accompanied by a study of
the most important and most used cryptocurrency, Bitcoin, and a research on the main tools
allowing its integration as a payment mean. Finally, the development part started with an
independent web application implementing the Paymium API, followed by the modification
of a PrestaShop module. The most important part being the integration of this solution in the
PayZen platform.
Keywords : e-banking, cryptocurrency, Bitcoin, java

Documents pareils

COMMUNIQUE DE PRESSE Optelo, la filiale micro

COMMUNIQUE DE PRESSE Optelo, la filiale micro Optelo, la filiale micro-paiement du Groupe ADVERLINE, va proposer une offre Bitcoin en partenariat avec Paymium Optelo s’associe à Paymium pour distribuer à ses clients une offre de paiement Bitco...

Plus en détail

Bitcoin : crypto-monnaie décentralisée ouverte et libre

Bitcoin : crypto-monnaie décentralisée ouverte et libre Les mineurs effectuent avec leur matériel informatique des calculs mathématiques (POW) pour le réseau Bitcoin afin de confirmer des transactions et augmenter leur sécurité. Comme récompense pour le...

Plus en détail