L’objectif de cet exercice est de mettre en place une page de donations utilisant la solution Stripe pour contribuer à l’amélioration des conditions de vie des canards de debug.
Les paiements seront effectués via l’environnement de test fourni par Stripe, ce qui permettra de simuler les paiements sans avoir à dépenser du “vrai” argent.
bre03-php-donate-for-ducks
sites/php
de votre IDE.Créez un compte sur www.stripe.com avec votre adresse e-mail 3WA
Importez le code source d’une implémentation (non-fonctionnelle) d’un tunnel de paiement personnalisé Stripe qui est mise à votre disposition sur Discord.
Ajoutez ces sources à votre projet sur l’IDE et familiarisez-vous avec son architecture de dossiers.
Dans le dossier ./config
, ajoutez un fichier .env
contenant une variable d’environnement avec votre clé API secrète d’environnement de test Stripe.
Sécurité : Ajoutez une règle dans votre .gitignore
pour que ce fichier ne soit pas versionné sur Github.
Utilisez Composer pour installer les librairies suivantes à la racine de votre projet :
v16.5
v5.6
Assurez-vous que le dossier ./vendor
est créé à la racine de votre projet. Vérifiez également les numéros de versions dans composer.json
.
checkout.html
:Chargez le javascript distant de la librairie Stripe.js v3 dans la balise <head>
en vous référant à la documentation adéquate.
checkout.js
:En lieu et place de :
const stripe;
Initialisez une instance de Stripe dans la variable constante stripe
avec votre clé publique de test.
Dans le but de permettre au code Javascript de communiquer avec Stripe.
Puis dans la fonction associée à la soumission du formulaire de paiement, spécifiez l’url absolue de retour après la confirmation d’un paiement au format : https://VOTRELOGIN.sites.3wa.io/php/bre03-php-donate-for-ducks/public/LE_CHEMIN_VERS_LE_BON_FICHIER
Dans le but de retourner sur la page du formulaire de donation une fois un paiement effectué.
Au début du fichier create.php
, utilisez la librairie PHP Dotenv pour récupérer votre clé secrète contenue dans votre fichier .env
afin de créer une instance de StripeClient
dans une variable nommée $stripe
.
Cette instance sera utilisée en étape 7.2 pour interagir avec l’API de Stripe via PHP.
Dans la partie Javascript de l’application ajoutez un comportement lorsque l’utilisateur change son montant de donation.
En lieu et place des lignes :
let amount;
initialize();
Comportements attendu :
amount
avec le nouveau montant choisi.Dans la partie PHP de l’application, ajoutez un comportement pour que lorsque l’utilisateur change son montant de donation.
Révision de la fonction calculateOrderAmount :
calculateOrderAmount
retourne de manière sécurisée le bon montant de donation sans changer sa définition.En lieu et place de :
// TODO : Create a PaymentIntent with amount and currency in '$paymentIntent'
Instanciation du paymentIntent :
paymentIntent
en renseignant le montant de la transaction et sa devise.calculateOrderAmount
pour transmettre le montant de la donation dans le bon format au paymentIntent
.Votre application de donation étant désormais 100% fonctionnelle en théorie.
Je vous invite tester son comportement en contrôlant les évènements qui se produisent sur :
Pour considérer une transaction réussie vous devez obtenir dans les évènements les messages suivant :
La tentative de paiement REFERENCE de 42,00 € a réussi
Un montant de 42,00 € a été débité à REFERENCE
En cas de besoin, n’oubliez pas de lire les documentations