Aide sur les paiement paypal

Fermé
Nanolenain Messages postés 72 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 3 février 2012 - 6 déc. 2010 à 16:09
Bonjour,

Je fais actuellement un site internet avec une boutique en ligne. j'essaie d'utiliser paypal pour le paiement des article, mais j'ai un problème avec les Notification instantanée de paiement (IPN) :
je vérifie l'authenticité des données POST avec ce code :
	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'];
    $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'];
    $id_user = $_POST['custom'];

	if (!$fp)
	{
		// ERREUR HTTP
    }
	else
	{
        fputs ($fp, $header . $req);
        while (!feof($fp))
		{
            $res = fgets ($fp, 1024);
            if (strcmp ($res, "VERIFIED") == 0)
			{
                // transaction valide
                if ( $payment_status == "Completed")
				{
                    if (VerifIXNID($txn_id) == 0)
					{
                        if ( "votreEmailSeller" == $receiver_email)
						{
                            // vérifier que payment_amount et payment_currency sont corrects
                            // traiter le paiement
                         }
						else
						{
							// mauvais email => fraude ?
						}
					}
					else
					{
						// paiement déjà vérifié
					}
				}
				else
				{
					//probleme lors du paiement
				}

            }
            else if (strcmp ($res, "INVALID") == 0)
			{
                // Transaction invalide
				
            }
        }
        fclose ($fp);
    }


Je suis sensé recevoir les mots "VERIFIED" ou "INVALID", mais tout ce que je recois, c'est :
"
HTTP/1.1 200 OK
Date: Thu, 07 Dec 2010 11:30:58 GMT
Server: Apache
Set-Cookie: pleinDeChiffresEtDeLettres; domain=.paypal.com; path=/
Set-Cookie: cookie_check=yes; expires=Mon, 02-Dec-2020 11:30:59 GMT; domain=.paypal.com; path=/
Set-Cookie: navcmd=_notify-validate; domain=.paypal.com; path=/
Set-Cookie: navlns=0.0; expires=Sun, 01-Dec-2030 11:30:59 GMT; domain=.paypal.com; path=/
Set-Cookie: Apache=10.191.196.11.213971291635058999; path=/; expires=Sat, 22-Oct-04 05:02:42 GMT
Connection: close
Content-Type: text/html; charset=UTF-8
"


Je précise que j'utilise la sandbox de paypal, le problème viendrait-il de la ? Puis régler ce problème, ou vais-je être obliger de faire mes tests avec mon véritable compte ?