Dicton du 24 Mai:
Après Sainte-Angèle, le jardinier ne craint plus le gel.

Télécharger
Noter:

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

Description

Aaaaah PayPal, une longue histoire d'amour, ou pas!

Après de longues recherches et des liens PayPal souvent morts, des mails de confirmation qui n'arrivent jamais, j'ai réussi à finaliser un script IPN PayPal assez simple d'utilisation et pas trop casse tête qui permet par exemple de recharger le solde d'un membre/utilisateur inscrit après le paiement.

Script disponible ici: IPN-PayPal-PHP.zip

Prérequis obligatoire pour que le script fonctionne:
- Avoir un certificat SSL (HTTPS): SHA-256 minimum et G5 VeriSign (PayPal n'autorise plus les transactions sans HTTPS) Vérifier si votre site à SSL avec sha2sslchecker.com
- OpenSSL >= 1.0.1 installé sur votre serveur (0.9.8o ne suffira pas et affichera l'erreur: "cURL erreur: [35] error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure") (Solutions pour les hébergement OVH: Vous devez ajouter la ligne suivante à votre fichier .ovhconfig* : container.image=stable)
- cURL (version minimum 7.34)

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

Création des comptes test vendeur/acheteur depuis la sandbox:
L'inscription se réalise avec vos vrais identifiants (mail paypal + mot de passe) à cette adresse: https://developer.paypal.com/
- Cliquez sur "Login into Dashboard"
- Entrez vos réel identifiants PayPal
- Puis cliquez ensuite sur "Sandbox > Accounts", le lien de la page est: https://developer.paypal.com/developer/accounts/
- La création d'un compte PERSONAL ou BUSINESS se passe ici: https://developer.paypal.com/developer/accounts/create
- PayPal crée automatiquement une adresse mail de type PERSONAL comme: votremail-buyer@votrewebmail.com, vous pouvez faire de même pour un compte type BUSINESS, de cette façon vous aurez toujours votre mail en "Available" lors de l'ajout d'un compte test sur: https://developer.paypal.com/developer/accounts/create
- Créer le compte avec un mot de passe simple comme 12345678 pour ne pas vous embêter pendant les test, puis pensez à supprimer les comptes après les tests.

Note:
En mode test, une fois le paiement réalisé, PayPal n'envoie pas de mail quand il dit:
"Nous enverrons une confirmation à : *votre adresse email*"
L'email des comptes sandbox est fictif et n'a donc pas besoin d'exister (par exemple test_acheteur@test456.com fonctionnera).
Pour retrouver les emails envoyés à vos comptes sandbox, vous pouvez vous rendre dans la section Notification du dashboard: https://developer.paypal.com/developer/notifications/
Vous pouvez donc utiliser de fausses adresses mails si vous le souhaitez, comme mail-acheteur@fauxsite.com et mail-vendeur@fauxsite.com afin de savoir qui est qui


Ajouter la table MySQL pp_transactions

Code source (SQL)

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;



Configuration pour faire des tests


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


Configuration pour utiliser le script en mode paiement réel


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 (c'est 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"):
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/

our-tech-support-content-has-moved! la blague!

Commentaires

Pas encore de commentaire ajouté, soyez le premier!

Ajouter un commentaire

Pseudo/Nom *
Email *
Message *
La balise [code]Votre code...[/code] peut être utilisée

Captcha * 6 + = douze

Les champs marqués d'un * sont obligatoires.

Retour à la liste des scripts

Flag Counter