J’effectue des test sur paypal sandbox pour mettre en place IPN (notification de paiement).
le bouton paypal :
lorsque je passe une commande, une fois mon paiement effectué je ne reçois pas de notification de paiement et ma base de donnee est vide.
Par contre, j’ai configuré le bouton retour sur le site (à la fin du paiement) de maniere à voir ma page de notification. Tous les elements s’affichent correctement et sont bien enregitrés dans ma base de donnee.
Je ne vois pas ou ca cloche, est ce que quelqu’un à une idee ?
Merci
Fanny
Page de notification :
le bouton paypal :
<input type="hidden" name="notify_url"
value="http://localhost/Copie de test/moi/notify-validate.php" >
<input type="hidden" name="return"
value="http://localhost/Copie de test/moi/notify-validate.php">
lorsque je passe une commande, une fois mon paiement effectué je ne reçois pas de notification de paiement et ma base de donnee est vide.
Par contre, j’ai configuré le bouton retour sur le site (à la fin du paiement) de maniere à voir ma page de notification. Tous les elements s’affichent correctement et sont bien enregitrés dans ma base de donnee.
Je ne vois pas ou ca cloche, est ce que quelqu’un à une idee ?

Merci
Fanny
Page de notification :
<?php require_once('../Connections/Connexion.php'); ?>
// lire la publication 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);
// affecter les variables publiées aux variables locales
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
if (!$fp) {
// ERREUR HTTP
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIE") == 0) {
// vérifier que payment_status est Terminé
// vérifier que txn_id n'a pas été précédemment traité
// vérifier que receiver_email est votre adresse email PayPal principale
// vérifier que payment_amount et payment_currency sont corrects
// traiter le paiement
}
else if (strcmp ($res, "NON VALIDE") == 0) {
// consigner pour étude manuelle
}
}
fclose ($fp);
}
mysql_select_db($database_Connexion, $Connexion);
$query_rsPaypal = "SELECT txn_id, item_name, item_number, payment_status,
mc_gross, mc_currency, receiver_email, payer_email FROM paypal";
$rsPaypal = mysql_query($query_rsPaypal, $Connexion) or die(mysql_error());
$row_rsPaypal = mysql_fetch_assoc($rsPaypal);
$totalRows_rsPaypal = mysql_num_rows($rsPaypal);
mysql_select_db($database_Connexion, $Connexion);
$query_rsPaypal = "INSERT INTO paypal (txn_id, item_name, item_number,
payment_status, mc_gross, mc_currency, receiver_email, payer_email) VALUES ('$txn_id', '$item_name', '$item_number', '$payment_status', '$payment_amount',
'$payment_currency', '$receiver_email', '$payer_email')";
$Result1 = mysql_query($query_rsPaypal, $Connexion) or die(mysql_error());
?>