Steve TENZA
Intervient pour votre site internet
Facebook Me contacter Cookie
Télécharger
Noter:
4.2/5 (15)
Ajouté/Modifié le 2023-11-02
Visionné 8408 fois

IPN PayPal PHP - Script de Notification Instantanée de Paiement

Description

J'ai développé un module de paiement PayPal, également connu sous le nom de script IPN PayPal, pour simplifier les transactions financières sur un site web. Ce module offre une solution conviviale permettant aux utilisateurs de régler leurs paniers sur un site de commerce électronique ou de recharger leur solde. Pour que le script fonctionne de manière optimale, il est impératif de respecter certains prérequis, notamment l'obligation d'avoir un certificat SSL (HTTPS) avec SHA-256 et un certificat G5 VeriSign. Il est important de souligner également qu'il est nécessaire d'avoir une version d'OpenSSL supérieure ou égale à 1.0.1 et de disposer de cURL avec une version minimale de 7.34.

En effet, il est important que vous ayez ces protocoles à jours. Néanmoins, si vos tests sont concluants sur l'environnement sandbox, vous n'aurez aucun souci pour migrer vers l'environnement live car Sandbox nécessites les mêmes protocoles.

Pour réaliser des tests de paiements, vous devez créer des comptes de test vendeur/acheteur dans l'environnement sandbox de PayPal. Cela peut être réalisé en s'inscrivant sur le site de développeur PayPal avec vos vraies informations d'identification (adresse e-mail PayPal et mot de passe). La création de ces comptes dans un environnement sandbox est essentielle pour effectuer des tests sans effectuer de réelles transactions financières. Il est à noter que PayPal n'envoie pas d'e-mails de confirmation lors des transactions de test contrairement à ce qu'il peut notifier, et vous pouvez utiliser des adresses e-mail fictives pour ces comptes sandbox.


Ce module de paiement PayPal constitue un outil pour les sites web qui souhaitent accepter des paiements en ligne de manière sécurisée.




Création des comptes test vendeur et acheteur

Pour créer des comptes vendeur et acheteur de test dans l'environnement sandbox de PayPal, suivez ces étapes :

1 . Allez sur le site PayPal des développeurs : https://developer.paypal.com/.
2 . Connectez-vous en utilisant vos véritables identifiants PayPal (adresse e-mail PayPal et mot de passe).
3 . Une fois connecté, accédez au "Tableau de bord" en cliquant sur "Login into Dashboard".
4 . Cliquez sur "Sandbox" puis sur "Accounts" (ou via ce lien direct : https://developer.paypal.com/developer/accounts/).
5 . Créez un compte de type PERSONAL et un compte BUSINESS via : https://developer.paypal.com/developer/accounts/create.
6 . PayPal génère automatiquement une adresse e-mail de type "votremail-buyer@votrewebmail.com" pour les comptes de type PERSONAL. Vous pouvez utiliser le même processus pour un compte BUSINESS, qui fournira toujours une adresse e-mail lors de l'ajout d'un compte de test. Pour simplifier vos tests, vous pouvez attribuer un mot de passe simple tel que "12345678", mais n'oubliez pas de supprimer ces comptes après les tests.

Remarque : Dans le cadre des tests, PayPal n'envoie pas d'e-mails de confirmation lorsque vous voyez l'indication "Nous enverrons une confirmation à : votre adresse e-mail".

Les adresses e-mail des comptes sandbox sont fictives et n'ont pas besoin d'exister. Par exemple, "test_acheteur@test456.com" fonctionnera parfaitement pour vos tests. Pour consulter les e-mails envoyés à vos comptes sandbox, vous pouvez accéder à la section "Notification" du tableau de bord PayPal : https://developer.paypal.com/developer/notifications/. Vous pouvez utiliser de fausses adresses email comme « mail-buyer@fauxsite.com » et « mail-vendeur@fauxsite.com » pour identifier correctement les comptes dans vos tests.


Pour gérer les informations des transactions, je vous propose d'ajouter une table MySQL nommée "pp_transactions".

CREATE TABLE `pp_transactions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`custom` varchar(20) NOT NULL,
`item_name` varchar(127) NOT NULL,
`amount` decimal(8,2) NOT NULL,
`id_membre` int(11) NOT NULL,
`date` bigint(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;

Configurer le script pour des paiements tests

- ligne 4, dans le fichier /pp/IPNPaypal.class.php : mettez "true" à $use_sandbox
- Utilisez vos mails tests de vos comptes "developer PayPal" (SandBox)


Configurer le script pour des paiements réels

1 : modifier le fichier url-de-notification.php :
- ligne 13: mettez votre adresse mail, là où vous recevrez les notifications
- ligne 23: mettez votre adresse de paiement paypal (l'adresse qui recevra les paiements)
- ligne 76: configurez le système de connexion ou mettez votre système de connexion à la place
- ligne 148: vous pouvez faire ici les modifications que vous souhaitez apporter car le paiement s'est réalisé avec succès !

2 : modifier le fichier bouton-de-paiement.php :
- ligne 19: décommentez la ligne
- ligne 20: commentez la ligne
- ligne 23: mettez votre adresse de paiement paypal (c'est l'adresse qui recevra les paiements)
laissez vous guider par les commentaires jusqu'à la ligne 44 où il vous faudra configurer le système de connexion ou mettez le votre à la place

3 : modifier le fichier IPNPaypal.class.php :
- ligne 4: mettez "false"
vous pouvez modifier les valeurs des variables privates (utiliser ou non des fichiers logs, test TLS,...)

4 : Dans PayPal, une fois connecté à votre compte, activez IPN :
URL d'accès direct au paramètre IPN: https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-ipn-notify

- étape 1: Allez plus bas dans la page, dans le menu de gauche vous trouverez "Préférences de vendeur"
- étape 2: cliquez sur: "Mettre à jour" à la ligne "Notifications instantanées de paiement Intégrer les notifications instantanées de paiement à mon site marchand."
- étape 3: Cliquez sur le bouton "Choisir les paramètres IPN" (en bas de page)
- étape 4: Choisissez l'URL de notification principale. Vous pouvez la renseigner dynamiquement depuis le bouton de paiement avec le paramètre "notify_url" (input name)
- étape 5: Sélectionnez "Recevoir les messages IPN (activé)"


Si IPN n'est pas activé aucun log ne sera créé.

LOGS IPN

Tous les logs sont visualisables depuis la page /pp/admin/logs.php (je vous laisse le soin de protéger l'accès à ces pages par vos moyens)

Boutons PayPal

Vous pouvez créer des boutons à cette adresse (en mode test, en mode réel il suffit d'enlever "sandbox" à l'URL):
https://www.sandbox.paypal.com/buttons
Bien que cette option soit pratique, je préfère personnellement avoir le choix d'indiquer les paramètres <input> manuellement dans le code source de mon site, vous avez la liste de tous les paramètres <input hidden> disponibles ici:
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/
Il faut savoir aussi que des paramètres sont dépréciés depuis quelques temps, la liste est ici:
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/#deprecated-variables

Logos PayPal

Vous pouvez télécharger tous les logos de PayPal dans chaque langue, via ce lien (.zip original):
https://www.paypalobjects.com/webstatic/mktg/logo-center/PayPal.zip

Liens utiles et Mises à jours PayPal

https://www.paypal-notice.com/en/TLS-1.2-and-HTTP1.1-Upgrade/
https://www.paypal-notice.com/en/IPN-Verification-Postback-to-HTTPS/

Simulation d'IPN (Il faut être connecté à son vrai compte PayPal pour l'utiliser):
https://developer.paypal.com/developer/ipnSimulator/
Docs PayPal IPN: https://developer.paypal.com/docs/classic/ipn/ht_ipn/

PayPal : Error 404 ! This page couldn’t be found.

C'est effectivement une situation bien connue chez PayPal ! Ils ont la fâcheuse habitude de modifier fréquemment les liens de leur site web, ce qui aboutit souvent à des erreurs 404. C’est décevant, j’avoue, mais il faut se rendre compte que PayPal reste l’un des leaders du traitement des paiements en ligne.


Télécharger le script IPN PayPal PHP :
IPN-PayPal-PHP.zip
(Téléchargé 1195 fois)



J'espère que ce script gratuit vous est utile.
Pour soutenir mon travail, un simple don ou mettre une note est grandement apprécié.
Votre réussite en ligne commence ici

Vous cherchez à pousser encore plus loin vos idées ou à les concrétiser avec un site internet sur mesure ? Je suis là pour vous aider ! Mon expérience en développement web est à votre disposition.

Que ce soit la création de votre site web pro ou l'apport de fonctionnalités avancées à votre projet, contactez-moi pour en discuter et avoir un devis gratuit personnalisé.

Mon objectif est de vous offrir des solutions sur mesure qui répondent à vos besoins, et votre vision associée à mon expertise donnera vie à votre projet web parfait. Contactez-moi aujourd'hui, je réponds en général en moins d'une heure :

Demander un devis
Réponse rapide !

Vous recherchez un script précis ?

Dites-moi ce dont vous avez besoin, je peux développer le script demandé et vous envoyer un mail dès qu'il est dispo !

🔔 Vous pouvez laisser votre mail pour recevoir les nouveaux scripts. Pas de pub, pas de tracas. Vous êtes libre de le supprimer à tout moment.

Je prends en compte toutes les demandes. Les idées les plus populaires passent en priorité et seront publiées dès qu'elles seront prêtes. 2877 demandes reçues.

Si vous avez un projet en tête, je vous suggère de me contacter directement pour en discuter.

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom
Email
Message
Captcha
memo1
Commenter

jecdu33 le 06 Août 2018 à 14:29

Bonjour, votre script est super, merci,

Comment peut on récupérer dans la page "return" l' ID de la transaction. ?
merci d'avance.

admin le 06 Août 2018 à 21:46

Bonjour, merci beaucoup

Vous trouverez sans doute la réponse à votre question via la doc: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/#ipn-transaction-types

Diaph le 19 Juin 2019 à 06:48

Bonjour,
Ce script est-il compatible pour automatiser les produits virtuels, par exemple : téléchargement après payement Paypal ?
Merci

admin le 19 Juin 2019 à 09:49

Bonjour, oui à vous de lancer votre téléchargement à la page d'arrivé finale de votre site, quand la personne à réellement payé.

Retour à la liste des scripts

Un site à créer ?
Contactez-moi