Salve a tutti sto smanettando un po con php per fare un applicazione che permette di donare soldi tramite paypal tutto ok riguardo al pagamento...ma IPN non ne vuole sapere...non riesco proprio a trovare il problema vi posto il listener...
In pratica dovrei registrare la transazione nel database nnt di particolare...non mi invia nemmeno un email bha illuminatemi xk sto impazzendo...codice:<?php // intercetta le variabili IPN inviate da PayPal $req = 'cmd=_notify-validate'; // legge l'intero contenuto dell'array POST foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $req .= "&$key=$value"; } // intestazione, prepara le variabili PayPal per la validazione $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"; // apre una connessione al socket PayPal $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); // verifica l'apertura della connessione al socket if (!$fp) { // HTTP-ERROR $to = "****"; $subject = "- SIMULAZIONE - Problema Transazione"; $message = "Si è verificato un problema nella seguente transazione:\r\n\r\n"; $message .= "Nome: " . $_POST['first_name'] . ' ' . $_POST['last_name'] . "\r\n"; $message .= "Email: " . $_POST['payer_email'] . "\r\n"; $message .= "ID Transazione: " . $_POST['txn_id'] . "\r\n"; $message .= "Oggetto: " . $_POST['transaction_subject']; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= 'From: <noreply@donate.com> \r\n'; mail($to, $subject, $message, $headers); exit(); } else { // elaborazione delle informazioni fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); // azioni in caso di risposta positiva da parte di PayPal if (strcmp ($res, "VERIFIED") == 0) { // controllo sull'email del venditore if(trim($receiver_email) === "donate_1356939740_biz@gmail.com") { $link = mysql_connect("localhost","*****","******"); mysql_select_db("*********",$link); $query = mysql_query("SELECT donate_id FROM purchase_history WHERE txn_id='".$_POST['txn_id']."'"); $total = mysql_num_rows($query); // controllo sull'identificatore della transazione if ($total == 0) { // query per l'inserimento dei dati $query = mysql_query("INSERT INTO purchase_history (txn_id, receiver_id, payment_status, mc_gross, payer_email, first_name, last_name, item_name) VALUES ('{$_POST['txn_id']}','{$_POST['receiver_id']}','{$_POST['payment_status']}','{$_POST['mc_gross']}','{$_POST['payer_email']}','{$_POST['first_name']}','{$_POST['last_name']}','{$_POST['item_name']})"); } // Chiusura del database mysql_close($link); } } elseif (strcmp ($res, "INVALID") == 0) { // Se la procedura non è legittima invia un email all'amministratore $to = "****"; $subject = "- SIMULAZIONE - Problema Transazione"; $message = "Si è verificato un problema nella seguente transazione:\r\n\r\n"; $message .= "Nome: " . $_POST['first_name'] . ' ' . $_POST['last_name'] . "\r\n"; $message .= "Email: " . $_POST['payer_email'] . "\r\n"; $message .= "ID Transazione: " . $_POST['txn_id']. "\r\n"; $message .= "Oggetto: " . $_POST['transaction_subject']; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= 'From: <noreply@donate.com> \r\n'; mail($to, $subject, $message, $headers); exit(); } } // chiusura della sorgente di dati fclose($fp); } ?>


Rispondi quotando