vi mostro il codice:
Codice 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 .= "Host: $url:443\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.l://www.sandbox.paypal.com, 443, $errno, $errstr, 30);
$subject = "Problema IPN1";
$message = "Si è verificato un problema nella seguente transazione:\r\n\r\n";
$message .=$errno. $errstr ;
mail(ADMIN_MAIL,$subject,$message,"From: noreply<$from>");
if (!$fp)
{
// HTTP ERROR
// $errstr - $errno
$this->sendReport();
return FALSE;
}
else
{
fputs ($fp, $header . $req);
while (!feof($fp))
{ //$this->sendReport();
$res = fgets ($fp, 1024);
$subject = "Problema IPN2";
$message = "Si è verificato un problema nella seguente transazione:\r\n\r\n";
$message .=$res. $fp ;
mail(ADMIN_MAIL,$subject,$message,"From: noreply<$from>");
if (strcmp($res, "VERIFIED") == 0)
{
fclose ($fp);
return TRUE;
}
else if (strcmp ($res, "INVALID") == 0)
{
//se la procedura non è legittima invia un email all'amministratore
$this->sendReport();
fclose ($fp);
return FALSE;
mi arrivano sia Problema IPN1 che Problema IPN2
quindi lo script entra dentro il while è fa il controllo della variabile $res solo che è come se fosse vuota o nulla.
comunque penso l'errore che sia nella porta cioè che non si metta in comunicazione con paypal l'errore è:
HTTP/1.0 500 Server closed connection without sending any data back
ho provato anche con la porta 80 ma penso che qui la neghi paypal
ma cè qualcuno che può verificare se le porte siano effettivamnete aperte?
Edit:
ho sviscerato i messaggi ecco cosa mi arriva come dati nelle email:
mi arrivano tre messaggi:
- leggenda:
a->$res
b->$fp
A->$errno
B-> $errstr
Problema IPN2 //e quindi siamo dentro il while
a-> Date: Wed, 07 Dec 2011 13:53:23 GMT
b-> Resource id #4
Problema IPN1
A ->0
B->
Problema IPN2
a-> HTTP/1.0 500 Server closed connection without sending any data back
b-> Resource id #4