le tuto a été déplacé ici : Tutorial Paypal : La récupération des données par IPN
Tutorial Paypal : La récupération des données par IPN
avril 17th, 2008
emile
Posted in paypal
Tags: "cryptage dynamique en php des boutons paypal", "paypal ne peut pas traiter cette transaction : le site web du vendeur présente un problème. veuillez contacter directement le vendeur afin de résoudre ce problème."sandbox, $payment_status valeurs, $_session ipn paypal, adresse ipn paypal sandbox, adresse retour ipn paypal, base de donnees pour paypaal, base des données de paypal, bouton acheter paypal php controle ipn, bouton paypal free.fr, bouton paypal ipn, bouton paypal recupérer une varable url, bouton paypal sur un myspace, bouton pour ipn paypal, buyer, champs ipn paypal, comment récupérer adresse2 paypal, comment recuperer les variable paypal retour au site marchand, comment tester des email paypal sans etre bloquer, comment tester ipn, comment transferer bouton paypal dans mon site, comment utilisé paypal dans mon site comme moyen de payement client, création, donner son adresse paypal, envoi auto de fichier apres paiement paypal, envoi du header aux site paypal, erreur ipn paypal, exemple ipn paypal, freepaypal tuto, fsockopen 443, fsockopen fonctionne avec sandbox mais pas avec paypal, fsockopen https paypal, fsockopen paypal, fsockopen sandbox paypal, fsockopen www.sandbox.paypal.com bad request, https tuto, if (strcmp ($res, "verified") == 0) ne fonctionne pas, ip sandbox paypal url retour, ipn, ipn abonnement tuto, ipn envoyer fichier apres paypal, ipn envoyer mail apres paypal, ipn et envoi en base de donnee, ipn et sandbox, ipn invalide sandbox, ipn paypal, ipn paypal bdd, ipn paypal creation, ipn paypal fsockopen, ipn paypal id, ipn paypal invalid, ipn paypal passer un identifiant, ipn paypal php, ipn paypal php port 80, ipn paypal probleme $_post, ipn paypal renvoyer ok, ipn paypal sandbox, ipn paypal sandbox fr, ipn paypal securite, ipn paypal ssl, ipn paypal toujours invalid, ipn paypal tuto, ipn paypal tutorial, ipn paypal tutorial https, ipn paypal wordpress, ipn php base de données, ipn port 80, ipn sandbox, ipn sandbox paypal, ipn sandbox url, ipn toujours invalid, ipn traitement ou pas, ipn variables identifier acheteur, lever un ipn, live-invalid ipn, mysql, nip paypal, nip.php exemple paypal, notification paiement paypal pas par moi, notify, notify paypal php fsockopen port, nous ne sommes pas en mesure de traiter cette transaction, organisme de formation informatique rodez, ou entrer ipn sandbox, paiement, panne paypal sandbox, paypae récupérer les variables ipn, paypal, paypal "bad request", paypal adresse confirme, paypal base de donnees, paypal cacher adresse, paypal cacher son adresse au vendeur, paypal formulaire ipn, paypal formulaire variable ipn, paypal fsockopen, paypal ipn $_post vide, paypal ipn bdd, paypal ipn et php session, paypal ipn invalid, paypal ipn jamais appele, paypal ipn message php, paypal ipn php mysql, paypal ipn php session id, paypal ipn récupérer téléphone, paypal ipn sandbox, paypal ipn session, paypal ipn ssl connection, paypal ipn telechargement fichier payer, paypal ipn tuto, paypal ipn tutorial, paypal ipn tutoriel, paypal ipn variable retour, paypal ipn wordpress sandbox, paypal ne peut pas traiter cette transaction : le site web du vendeur présente un problème. veuillez contacter directement le vendeur afin de résoudre ce problème., paypal nip tutorial, paypal paiement reussi php base de donnee, paypal passer des variables, paypal paypal ne peut pas traiter cette transaction : le site web du vendeur présente un problème. veuillez contacter directement le vendeur afin de résoudre ce problème., paypal php ipn annuler un abonnement, paypal php sandbox, paypal php tranfert, paypal plusieur variable custom, paypal recuperation coordonnee, paypal récuperation des données, paypal récupérer variables, paypal retour chez le marchand, paypal retour ipn, paypal sandbox bad request, paypal sandbox ipn, paypal sandbox ipn script, paypal sandbox ipn tutorial, paypal sandbox tutorial, paypal sandbox tutorial transfert, paypal session ipn, paypal subscription info, paypal table fichier mysql toute les valeur ipn, paypal tuto, paypal tutorial ipn, paypaltech tutorial, paypal_subscription_info, pb ipn paypal, pb message ipn paypal, php, php paypal ipn, php retour paypal ipn, php traitement ipn paypal, php tutorial paypal, php tutoriaux paument en ligne, port internet utilisé par paypal, pour effectuer cette transaction, il vous faut créer un compte paypal ou utiliser une autre carte, probleme ipn protocol de paypal, probleme payement paypal ipn, qu est ce qui pourrait bloqué paypal ipn, reccupérer ipn information, recup info cb, récupération de données par ipn notify, récupération de données par ipn notify télécharger, récuperation ipn paypal, recuperation ipn qui ne marche pas, récupérer des variables après paypal, récuperer des variables persos ipn paypal, récupérer données envoyé par paypal après paiement, recuperer données formulaire apres paiement paypal, récupérer données paypal, recuperer email paypal, recuperer information transaction paypal, récupérer informations ipn paypal, recuperer infos paiement paypal en php, recupérer ipn, recuperer ipn paypal, récupérer les information de paiement paypal en php, récupérer téléphone acheteur paypal, recuperer un champ texte dans un base sql avant envoi paypal, récupérer variable custom paypal, récupérer variable ipn paypal, recuperer variables paypal, redirect url invalid ipn, retour ipn paypal et session, retour ipn paypal. erreur http, retour paiement paypal wordpress, sandbox, sandbox html cart paypal, sandbox ipn, sandbox ipn invalid, sandbox paypal ipn, sandbox paypal ipn tutorial, sandbox paypal table vide, sandbox probleme ipn, sandbox test paypal variable wordpress, sandbox.paypal.com fsockopen, script php paypal mysql, session dans ipn.php, simple ipn - free paypal-ipn php, site, test ipn paypal, traitement des variables ipn, traiter les information ipn paypal, transaction invalide paypal sandbox, tuto en objet de recup, tuto instant payment notificaton, tuto ipn paypal, tuto paypal abonnement, tuto paypal instant payment notification, tuto paypal ipn, tuto paypal ipn sandbox, tuto paypal logo cartes paiement, tuto paypal notify_url, tuto paypal php, tuto pfsockopen, tuto php recuperation des données post, tuto script paypal, tuto variable custom paypal, tutorial ipn paypal, tutorial paypal, tutorial paypal annuler transaction, tutorial paypal ipn, tutorial paypal php, tutorial paypal sandbox, tutorial paypal ssl, tutorial paypal traitement ipn, tutoriel ipn paypal, tutoriel nip paypal, tutoriel paypal ipn, url de retour paypal ipn, url retour site marchand paypal cb, variable ipn paypal, variable paypal ipn, wordpress paypal bouton "le site web du vendeur présente un problème", wordpress, vendre, paypal
RSS Feed


[...] Etape 3 : La récupération des données par IPN [...]
[...] Contact « Tutorial Paypal : La récupération des données par IPN [...]
Hello
Merci beaucoup pour le tuto.
Qui clarifie encore plus ce que qu’avait déjà bien clarifié celui-ci :
http://www.wikistuce.info/doku.php/articles/mise_en_place_d_un_paiement_paypal_sur_site_marchand?#%5B1%5D
Ce qui m’interresse beaucoup, c’est justement le cryptage.
Je reprend mon post sur le site évoqué plus haut (auquel Emile m’a répondu) :
——————
« Je travaille sur la Sandbox. Comme tu le conseilles, j’obtiens certif et clé par le biais du site : http://www.stellarwebsolutions.com/certificates/stellar_cert_builder.php Et je télécharge le certif paypal sans oublier de copier le cert_id obtenu.
bien.
J’ai bien tout checké, dans mon certif perso, j’ai bien la même adresse email que celle du compte vendeur confirmé sur la Sandbox. Mais je tombe en permanence sur cette erreur lors du test :
Nous ne sommes pas en mesure de traiter cette transaction en raison d’un problème concernant l’adresse email PayPal fournie par le vendeur. Veuillez contacter le vendeur afin de résoudre ce problème. Si ce paiement (…)
Aurais-tu des indices de résolution concernant ce message d’erreur ?? J’ai tout bien respecté, et je dois passer en prod réelle le plus rapidement possible, je craque… (Note : j’avais installé openssl sur mon apache pour créer les clé et certif au nom de mon client, et je les garde sous le coude pour réaliser l’opération en réel dés que tout sera ok) »
——————
Merci d’avance pour l’entraide
joss
Intéressant, vos explication vont me faire gagner du temps.
Pouvez vous fournir le fichier contenant la structure de la table sql ?
(Le copier/coller provoque une erreur au moment de la creation)
il est disponible ici http://paypaltech.com/SG2/PHPDBSQL_code.php
pourriez vous m expliquer pourquoi nous avons besoin de nous connecter au serveur de paypal via fsockopen.
on se connecte sur le serveur pour ouvrir un fichier ???
on lit dans le fichier le resultat ?
et en fonction du resultat ou mets a jour la base ?
c ca ?
je ne comprends pas trop la methode..
merci pour vos explications.
j ai fait quelques recherche .. je crois qu il faur renvoyer a paypal via fsockopen les post recu pour qu il verifie l exactitute
des infos.
c ca ?
j ai créé un les comptes business et acheteur.
j ai créé mon fichier NIP.PHP
quand je simule un achat mon fichier php est bien appelé ….
j ouvre la connection →$fp = fsockopen (‘www.sandbox.paypal.com’, 80, $errno, $errstr, 30);
j envoie la requette : fputs ($fp, $header . $req);
mai la reponse de paypal n est jamais validate…. j ai alors decide d enregister la reponse de paypal pour comprendre
j ai enregsitre dans une base la reponse: $res —> $res = fgets ($fp, 1024);
voila ce que j ai :
HTTP/1.1 307 Temporary Redirect
Server: NS8.0.45.4
Location: https://www.sandbox.paypal.com/cgi-bin/webscr
Content Type: text/html
Cache Control: private
Connection: close
This object may be found here
pourriez m expliquer pour quoi j ai cette reponse et pas un VALIDATE
merci merci a celui qui pourra m aider
Voici une citation d’un mec de PayPal qui date d’hier:
Bonjour,
Nous avons un probleme avec les IPNs Sandbox pour le moment.
En fait, nos techniciens font des mises a jour pour que IPN passe par le port 80(sécurisé maintenant et cela n’est pas encore au point (pas de problemes a noter en production par contre pour le moment).
Ce qu’il faut que vous fassiez est remplacer le port 80 par le port 443 ($fp = fsockopen (‘www.sandbox.paypal.com’, 443, $errno, $errstr, 30); et cela devrait fonctionner.
Merci
Cordialement,
Florian
bonjour, j’ai le même problème qu’hubi.
J’ai testé la soluce de stefkiller malheureusement ça ne fonctionne pas.
Voici le résultat avec le port 443 :
…
400 Bad Request
Bad Request
Your browser sent a request that this server co…
Instead use the HTTPS scheme to access this URL, p…
solution : mettre le protocole ssl avec l’adresse de sandbox
$fp = fsockopen (’ssl://www.sandbox.paypal.com’, 443, $errno, $errstr, 30);
Attention le & ligne 45 ne passe pas, il faut le remplacer par &
Bonjour,
J’ai recopier le Script PHP pour mon IPN, creer la base de données. A un renvoi des informations par Sandbox de Paypal.
Le payement se réalise bien, mais je reçois toujours :
INVALID
cmd=_notify-validate
Quelqu’un aurait une idée du pourquoi ?
J’ai le même problème que constantine, à l’aide svp
Bonjour,
Super tuto, merci
Pour Constantine et fox7725, j’ai rencontré le même problème que vous et après de multiples tests, j’ai testé la solution proposée plus tôt : remplacer le & ligne 45 et ça fonctionne.
Attention aussi pendant vos tests si vous gardez toujours les même valeurs dans vos champs de formulaire, si votre compte marchand n’accepte pas la facturation multiple, la transaction ne sera valide qu’après validation du marchand dans son compte. Pour éviter celà, il faut modifier les préférences.
Bonne journée
slt, ce tutorial est fè pr testé des compte paypal ou directemnt pr des paiement par carte bancaire ?
de plus ma base de donné ne se rempli pa, meme kan j’arrive a simulé un paiement mè seulement par compte paypal, pourriez maidez svp, merci.
kelk1 peu m’expliker prk il faut remplacer a ligne 45 le & par un & ki est le meme symbole? en faite par kel symbole doit on remplacer le & ligne 45? merci de m’aider svp
Alors, j ‘ai moi aussi eu quelques difficultés à comprendre pourquoi en utilisant mes comptes de sandbox ma table ne se remplissait pas.
Après recherche, il s’avère que la valeur présente dans « $res » est vide pour un paiement par CB. Donc pour inscrire dans la DB le résultat d’un paiement, il faut lever (virer) le test « if (strcmp ($res, « VERIFIED ») == 0)) { // » (vers la ligne 100 chez moi)
Voilà pour ceux qui ça pourrait intéresser…
[...] Etape 3 : La récupération des données par IPN [...]
Bon je vous explique, je suis super nul pour tout ca mais je fais l’effort d’essayer comprendre.
j’ai bien compris les 2 premieres parties mais pas la deniere.
Je suis auteur/compositeur/interprete, je cherche désespérement a vendre ma musique via paypal sans passer par les sites spécialisés.
Mon idéal serait un bouton paypal sur myspace, qui permette l’achat et le telechargement d’une chanson.J’ecume les forums et je ne trouve rien sur la partie telechargement du fichier mp3 a moins que je regarde mal. vous pouvez m’orienter ?
pour ceux qui savent pas quoi remplacer a la ligne 45 c’est « & amp ; » qui affiche le symbole &
bon j’ai tout implanter correctement, il me semble, mais je ne réussi pas a recevoir les résultats apres que le paiement aie passé dans paypal.. faut-il que mon fichier php qui recoit les données soit dans une forme quelqu’onque???
bonjour
ça fait 3j que jje suis en train de créer un formulaire d’adhésion en ligne pour le site d’une asso et je galère comme une malade pour brancher le paiement paypal.
n’ayant jamais réussi à faire marcher la sandbox (je crois que les développeurs qui passent par free ont en majorité ce pb), je testais en live, avec ma cb sur le compte paypal de mon mari.. seulement volià, par mesure de « sécurité », paypal bloque au bout de 10 tests.. bilan, je ne peux plus tester, j’ai le message « pour effectuer cette transaction vous devez créer un compte paypal ou utiliser une autre carte »… super pratique… je fais donc faire les transactions par un ami jusqu’à ce que lui aussi soit bloqué.. bref.
en attendant : il réussi bien à payer par cb, et reçoit bien la confimation paypal pour son paiement (qu’on annule ensuite évidemment). coté ipn, on a bien mentionné un retour ipn sur le compte de mon mari et en plus, je lui passe la variable « notify_url » .
j’ai voulu faire un module ipn tout simple:
- si l’adhérent a bien réglé on lui envoie un mail confirmant son adhésion et on envoie à l’asso un mail avec les coordonnées de l’adhérent.
et c’est là, qu’il ne se passe rien…
je copicolle en dessous mon retour_ipn qui est peut-être trop simpliste? en même temps c’est pas un site marchand avec possibilité d’arnaque et tout ça..
est-ce que vous voyez quelque chose qui cloche dans ce que j’ai fait?
merci de votre aide
donia qui galère….
<?php
session_start();
$payment_status = $_POST['payment_status'];
$date = $_POST['payment_date'];
if($payment_status== »Completed ») {
// paiement ok
$mail=$_SESSION['mail'];
/////////////////////////////////
// envoi d’un mail à l’adhérent
////////////////////////////////
$objet = « Votre adhésion à l\’AFPAEC »;
$nomexp = « AFPAEC »;
$adrexp = « afpaec@yahoo.fr »;
$message=’
Bonjour,
Votre adhésion a l\’AFPAEC a bien été prise en compte. Nous vous remercions de votre confiance et votre soutien.
Vous recevrez d\’ici quelques jours votre carte de membre qui sera valable un an à partir d\’aujourd\’hui.
Cordialement.
L\’équipe de l\’Association Française des Parents Adoptifs d\’Enfants de Chine (AFPAEC)
http://afpaec.org
‘;
$message = stripslashes($message); // traitement de la variable message pour virer les antislash
$messageHTML = $message;
$headers = »From: $nomexp ». »". »\n »;
$headers .= »Reply-To: $adrexp ». »\n »;
$headers .=’Content-Type: text/html; charset= »iso-8859-1″‘. »\n »;
$headers .=’Content-Transfer-Encoding: 8bit’;
mail($mail, $objet, $messageHTML, $headers)
////////////////////////////////
// envoi d’un mail chez nous
////////////////////////////////
$objet = « Adhésion AFPAEC »;
$nomexp = « AFPAEC »;
$adrexp = « afpaec@yahoo.fr »;
$message=’
nouvelle adhésion reçue:
date paiement : ‘.$_POST['payment_date'].’;
nom : ‘.$_SESSION['nom'].’
prenom : ‘.$_SESSION['prenom'].’
adresse1 : ‘.$_SESSION['adresse1'].’
adresse2 : ‘.$_SESSION['adresse2'].’
ville : ‘.$_SESSION['ville'].’
code postal : ‘.$_SESSION['codepostal'].’
tel1 : ‘.$_SESSION['tel1'].’
tel2 : ‘.$_SESSION['tel2'].’
mail : ‘.$_SESSION['mail'].’
typemembre : ‘.$_SESSION['typemembre'].’
montantversement : ‘.$_SESSION['montantversement'].’
Enfant de Chine : ‘.$_SESSION['enfantchine'].’
NbChine : ‘.$_SESSION['nbenfant'].’
adoption en cours : ‘.$_SESSION['encoursadoption'].’
organisme : ‘.$_SESSION['organisme'].’
date LID : ‘.$_SESSION['datedossier'].’
donner coordonnees : ‘.$_SESSION['donnercoordonnees'].’
donner fixe : ‘.$_SESSION['donnerfixe'].’
donner portable : ‘.$_SESSION['donnerportable'].’
donnermail : ‘.$_SESSION['donnermail'].’
commentaire : ‘.$_SESSION['commentaire'].’
‘;
$message = stripslashes($message); // traitement de la variable message pour virer les antislash
$messageHTML = $message;
$headers = »From: $nomexp ». »". »\n »;
$headers .= »Reply-To: $adrexp ». »\n »;
$headers .=’Content-Type: text/html; charset= »iso-8859-1″‘. »\n »;
$headers .=’Content-Transfer-Encoding: 8bit’;
mail($mail, $objet, $messageHTML, $headers)
}
else
{
// Paiement PAYPAL a échoué
////////////////////////////////
// envoi d’un mail chez nous
////////////////////////////////
$objet = « Adhésion AFPAEC ECHOUEE »;
$nomexp = « AFPAEC »;
$adrexp = « afpaec@yahoo.fr »;
$message=’
————Adhésion échouée————–:
date paiement : ‘.$_POST['payment_date'].’;
nom : ‘.$_SESSION['nom'].’
prenom : ‘.$_SESSION['prenom'].’
adresse1 : ‘.$_SESSION['adresse1'].’
adresse2 : ‘.$_SESSION['adresse2'].’
ville : ‘.$_SESSION['ville'].’
code postal : ‘.$_SESSION['codepostal'].’
tel1 : ‘.$_SESSION['tel1'].’
tel2 : ‘.$_SESSION['tel2'].’
mail : ‘.$_SESSION['mail'].’
typemembre : ‘.$_SESSION['typemembre'].’
montantversement : ‘.$_SESSION['montantversement'].’
Enfant de Chine : ‘.$_SESSION['enfantchine'].’
NbChine : ‘.$_SESSION['nbenfant'].’
adoption en cours : ‘.$_SESSION['encoursadoption'].’
organisme : ‘.$_SESSION['organisme'].’
date LID : ‘.$_SESSION['datedossier'].’
donner coordonnees : ‘.$_SESSION['donnercoordonnees'].’
donner fixe : ‘.$_SESSION['donnerfixe'].’
donner portable : ‘.$_SESSION['donnerportable'].’
donnermail : ‘.$_SESSION['donnermail'].’
commentaire : ‘.$_SESSION['commentaire'].’
‘;
$message = stripslashes($message); // traitement de la variable message pour virer les antislash
$messageHTML = $message;
$headers = »From: $nomexp ». »". »\n »;
$headers .= »Reply-To: $adrexp ». »\n »;
$headers .=’Content-Type: text/html; charset= »iso-8859-1″‘. »\n »;
$headers .=’Content-Transfer-Encoding: 8bit’;
mail($mail, $objet, $messageHTML, $headers)
}
?>
kelk1 pourrai me laissé un exmple concrè pr utiliser la variable $custom, sinon si kelk1 a réussi a faire fonctionné le tuto, pourè t il me laissé son adresse mail. merci
@jacksparo :
dans la variable custom tu mets ce que tu veux, exemple : l’ID de l’item vendu.
Ce sera utile lorsque PayPal va te réenvoyer les infos de paiements, tu pourras déterminer ce qui a été acheté.
Merci pour le tuto, il éclaire déjà les choses.
1) A ce jour (aout 2009) on peut déclarer les 3 url (de retour ok, de retour annulation et d’ipn) non pas en champ hidden mais depuis son vrai compte paypal. Qu’en est il pour les tests : sandbox prend les url déclarées en vrai ou bien il est obligatoire de les passer en champ hidden ?
2) Si retour en ok ou annulation, A t’on préservation des variables de session ou bien faut il demander à l’internaute de se reconnecter pour savoir à qui on a affaire ?
3) L’Ipn a t’il forcément été reçu avant cet éventuel retour de l’internaute ou bien est ce complètement désynchronisé ? Dans ce cas il faut lui dire de ré-essayer de se connecter dans 5 minutes le temps de savoir … (je vend un abonnement et mes clients sont pressés d’accéder à ce qu’ils ont payé, mais je veut pas me faire filouter).
4) Dernier truc qui reste obscur pour moi : tu dis qu’avant de tester il faut se connecter à sandbox, mais avec quels identifiants, le compte de test, le compte de vendeur fictif, le compte d’acheteur fictif ?
La doc de paypal est vraiment bordélique et le support totalement absent.