ciao a tutti,
ho scritto questo listener per ricevere le conferme di pagamento da parte di paypal; il problema è che il pagamento avviene correttamente (ho controllato nella sandbox), ma nella tabella richieste non viene inserito alcun record.
Codice PHP:
//PAGINA LISTENER PAYPAL<?php $req = 'cmd=_notify-validate'; foreach($_POST as $key => $value){ $value = urlencode(stripslashes($value)); $req .="&$key=$value"; } $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Lenght: " .strlen($req) . "\r\n\r\n"; $fp = fsocketopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); //FINITO IL TEST SOSTITUIRE CON paypal.com $txn_id = filter_var($_POST['txn_id'], FILTER_SANITIZE_STRING); $payement_status = filter_var($_POST['payement_status'], FILTER_SANITIZE_STRING); $receiver_email = filter_var($_POST['receiver_email'], FILTER_SANITIZE_STRING); //EMAIL DEL VENDITORE $utente = filter_var($_POST['custom'], FILTER_SANITIZE_STRING); $tipo = filter_var($_POST['item_name'], FILTER_SANITIZE_STRING); //POSSIBILITA' DI RICEVERE INFORMAZIONI SULL'UTENTE if(!$fp){ exit(); //IN CASO DI ERRORE DI CONNESSIONE TERMINA LO SCRIPT } else { fputs($fp, $header . $req); while(!feof($fp)){ $res = fgets($fp, 1024); if(strcmp($res, "VERIFIED") == 0){ //CONTROLLO RISPOSTA POSITIVA DA PAYPAL if($receiver_email == "borgioli.niccolo-facilitator@gmail.com"){ //CONTROLLO E-MAIL DEL VENDITORE session_start(); require_once('mysqlconn.php'); mysql_select_db($database, $utenti); $controllo = mysql_query("SELECT * FROM richieste WHERE txn_id = '".$txn_id."' ") or die (mysql_error()); if(mysql_num_rows($controllo) == 0){ $aggiungi = mysql_query("INSERT INTO richieste (txn_id, payement_status, utente, tipo) VALUES ('".$txn_id."', '".$payement_status."', '".$utente."', '".$tipo."') ") or die (mysql_error()); } } } if(strcmp($res, "INVALID") == 0){ //AZIONI IN CASO DI RISPOSTA NEGATIVA DA PAYPAL } } fclose($fp); }?>
Quale potrebbe essere il problema?
Scusate per l'indentazione, ma sono da tablet.