Retour IPN paypal invalide
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bonjour,
J'essai de mettre en place un module de paiement paypal avec un retour IPN.
J'ai créé des comptes tests acheteur et vendeur sur https://developer.paypal.com/, j'ai paramétré mon paiement avec l'adresse mail du compte test vendeur et j'ai bien activé le retour IPN.
J'indique bien les url de retour et celle du retour IPN (notify_url). Ma page de notify_url est bien appelé mais quand je renvoi sur cette page les données à paypal pour vérification la réponse de paypal n'est jamais "VERIFIED" même si le paiement est valide...
La réponse que j'obtiens est la suivante :
HTTP/1.0 302 Found
Location: https://www.sandbox.paypal.com
Server: BigIP
Connection: close
Content-Length: 0
Ma question est pourquoi ? et comment régler ce problème ?
Voici mon code de page notify_url :
<?php // lire le formulaire provenant du système PayPal et ajouter 'cmd' $req = 'cmd=_notify-validate'; foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $req .= "&$key=$value"; } // renvoyer au système PayPal pour validation $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30); $item_name = $_POST['item_name']; $id_commande = clean_var($_POST['item_number'],1); $payment_status = $_POST['payment_status']; $payment_amount = $_POST['mc_gross']; // verif total $payment_currency = $_POST['mc_currency']; // verif EUR $txn_id = $_POST['txn_id']; $receiver_email = $_POST['receiver_email']; $payer_email = $_POST['payer_email']; $id_user = $_POST['custom']; if(!$fp){ // ERREUR HTTP }else{ fputs ($fp, $header . $req); while(!feof($fp)){ $res = fgets ($fp, 1024); // Mon code bloque ici car ne valide jamais cette condition, ni le else car je ne reçois ni VERIFIED ni INVALID if(strcmp ($res, "VERIFIED") == 0){ // vérifier que payment_status a la valeur Completed if($payment_status == "Completed"){ if("mon_email_de_test" == $receiver_email){ // vérifier que payment_amount et payment_currency sont corrects // traiter le paiement } }else{ // Mauvaise adresse email paypal } }else{ // Statut de paiement: Echec } }else if(strcmp($res, "INVALID") == 0) { // Transaction invalide } } fclose ($fp); } ?>
Merci par avance pour votre aide.
Cordialement.
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bonjour,
J'ai le même problème depuis 1 semaine.
J'ai effectué, auparavant, des tests et tout fonctionnait bien avec ce code, il y a quelque chose qui a changé dernièrement, mais je ne sais pas quoi???
Merci!
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bonjour,
remplacer:
$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
par:
$fp = fsockopen ('ssl://www.sandbox.paypal.com', '443', $errno, $errstr, 30);
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bonjour à tous,
La soliution d'Herbamiel a-t-elle réglé votre problème?
Cordialement,
Alban
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bonsoir,
Je rencontre exactement le même problème mais la solution proposée n'a rien changé, quelqu'un a-t-il une autre solution ?
Merci d'avance
titia8000
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bonjour, j'ai exactement le même soucis, mais la solution proposée ici n'a pas réglé mon soucis, je récupère une page html complexe au lieu du simple retour "VERIFIED" ou "INVALID" attendu.
Est-ce que quelqu'un ici a le même soucis ? Est-ce qu'il y a une solution à ce problème ?
Mon système marchait très bien (sur le port 80) depuis plus d'un an jusqu'à ce mois ci, je ne comprends pas ce qui se passe.
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Note : Il est important pour cette nouvelle solution d'avoir OpenSSL d'activé sur la configuration de PHP ( "<?php phpinfo(); ?>" pour vérifier). Dans mon cas c'est bien le cas mais la réponse n'est toujours pas conforme à mes attentes.
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bonjour
Je suis également en train de tester sur sandbox un systeme de paiement paypal avec traitement IPN et j'ai exactement le même problème qui a été soulevé ici.
Mon code a été vérifié donc je ne pense que ca vienne de là. J'ai testé la solution de herbamiel et le problème est toujours là.
D'apres ce que j'ai reussi a voir, le probleme viendrais de la ligne "if (strcmp ($res, "VERIFIED") == 0)" qui n'est pas validé et donc le reste du code n'est pas traité.
Si quelqu'un a une solution, je suis tres preneur.
Merci d'avance
Florian
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bonjour foyout,
Je confirme que c'est bien le ( "VERIFIED" == 0 ) qui pose problème, est-ce que tu peux afficher quelque part le résultat de $res pour voir ce qui t'as été renvoyé ?
Normalement le résultat est "VERIFIED" ou "INVALID" mais dans mon cas c'est une page HTML complète qui est retournée. Je serais curieux de savoir ce que tu obtiens de ton côté.
Cordialement,
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Bienvenue au Club, les Mecs,
J'ai loggué un call chez Paypal sur ce problème insoluble il y a une heure.
Il y a des centaines de messages identiques dans tous les forums PP et php sur Internet, et aucun n'a eu de réponse.
Je suis en train de mettre à jour le tuto de Shaun Wourm (ex http://www.althacker.com) de 2005 sur ce sujet (dont les exemples ne marchent plus). J'ai déjà trouvé plein de trucs que PP a changé sans mettre leurs docs à jour ni leurs exemples, ces rats !
Dès que "ca remarche", je finis la maj du tuto et je la poste PARTOUT !
(une version de travail est dispo ici : http://www.ddtl.fr/monsite/Tutorial_Paypal_php_MySQL_NIP.doc)
Après, j'ajoute php et MySQL à mon site sur la gestion des erreurs sous Windaube...
A+
Didier
Haven't Found your Answer?
It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.
- Litige GearBest et retour de Paypal : Paypal protège plus le vendeur que l'acheteur dans Les Archives
- problème avec retour objet dans Les Archives
- litige traité à la légère par paypal dans Les Archives
- frais de retour remboursés paypal dans Les Archives
- Remboursement Paypal non crédité depuis plus d'un mois dans Les Archives