INTEGRATION
D’API DE
PAIEMENT
PAYTECH
01 Introduction 07 sécurité et bonne
02 Prerequis technique pratique
03 Guide d’installation 08 résultats et observation
04 conception et 09 conclusion
modelisation
05 implementation
06 test et validation
INTRODUCTION
1.1. Objectif du Projet
Ce document détaille la conception et l’implémentation d’une
mini-application web de e-commerce. Le projet intègre l’API
de paiement PayTech pour gérer des transactions financières
en ligne de manière sécurisée, fiable et asynchrone, en suivant
une architecture logicielle simple basée sur des services web.
1.2. Fonctionnalités Clés
- Ajout et affichage d’articles.
- Lancement d’une demande de paiement via l’API PayTech.
- Gestion des retours (succès, annulation) par redirection.
- Traitement des confirmations de paiement via un Webhook
(IPN).
- Stockage et mise à jour des statuts de commande dans une
base de données.
- Consultation de l’historique des commandes.
1.3. Architecture Technologique
- Langage : PHP 8
- Base de données : MySQL
- Serveur Web : Apache (WAMP/XAMPP)
- API Externe : PayTech Payment Gateway
Prérequis
Techniques
2.1. Logiciels
Un environnement local complet comme WAMP ou XAMPP.
2.2. Extensions PHP
- pdo_mysql
- curl
2.3. Compte Développeur PayTech
Obtenir API_KEY et API_SECRET pour l’environnement de test.
paytech
2.4. Outil de Test (Ngrok)
Exposer localement un serveur HTTP sécurisé pour tester l’IPN.
Guide
d’Installation et
Configuration
3.1. Étape 1 : Installation des fichiers
Placer les scripts dans le répertoire racine du
serveur web.
3.2. Étape 2 : Base de données
Créer une base `api`. Importer `[Link]` pour
générer les tables `articles` et `commandes`.
3.3. Étape 3 : Variables d’Environnement
Créer un fichier .env avec les informations suivantes :
3.4. Étape 4 : Configuration du tunnel Ngrok
Lancer `ngrok http 80`, récupérer l’URL sécurisée et
l’utiliser pour success_url, cancel_url et ipn_url.
Conception et
Modélisation
4.1. Structure des fichiers
- [Link] : crée la commande et lance la transaction.
- [Link] : gère la notification asynchrone.
- [Link] : affiche succès.
- [Link] : affiche annulation.
- [Link] / [Link] : connexion BD et configuration.
4.2. Schéma de la base de données
- articles (id, nom, prix)
- commandes (id, ref_command, article_id, montant, statut,
created_at)
4.3. Diagramme de
séquence
1. Client → Serveur : achat
article.
2. Serveur → PayTech :
création de paiement.
3. PayTech → Client : page
checkout.
4. PayTech → Serveur : IPN
avec statut final.
5. Serveur → BD : mise à jour.
Implémentation
5.1. Création de Paiement 5.3 IPN (WEBHOOK)
Génération d’une commande Réception de la notification,
avec statut EN COURS. Envoi à vérification HMAC-SHA256.
Paytech avec Mise à jour de la commande :
curl puis redirection vers - PAYER si transaction validée.
redirect_url. - ANNULÉE si la transaction
est annulée.
5.2. Retour Utilisateur - EN COURS lors de la création
Redirection vers success_url initiale.
ou cancel_url selon le choix de
l’utilisateur.
Tests et
Validation
6.1. Paiement réussi
La commande passe de
EN COURS → PAYER.
6.2. Paiement annulé
La commande passe de
EN COURS → ANNULÉE.
6.3. Vérification BD
Les statuts et dates de mise à jour sont corrects
dans la base de données.
Sécurité et
Bonnes
Pratiques
7.1. Variables d’environnement
Clés et credentials stockés dans .env hors du code
source.
7.2. Prévention des injections SQL
Utilisation de PDO avec requêtes préparées.
7.3. HTTPS obligatoire
Toutes les communications passent par HTTPS.
Résultats et
Observations
8.1. Fonctionnement
En mode sandbox, les transactions
fonctionnent correctement.
8.2. Robustesse
L’IPN assure la cohérence même si
l’utilisateur ferme son navigateur.
CONCLUSION
Ce projet a permis de démontrer de manière
concrète l’intégration d’un service externe de
paiement en ligne dans une application web simple.
L’API PayTech a été utilisée pour automatiser et
sécuriser le processus de transaction, depuis la
création d’une commande jusqu’à la confirmation
finale du paiement.
Ce travail met en évidence l’importance des
architectures logicielles et des web services dans le
développement moderne : ils permettent de
connecter une application locale à des services tiers
de manière flexible, sécurisée et extensible.