salve a tutti, sto testando uno script per implementare un pagamento di paypal ma non mi funziona.
lo script è su un hosting gratuito che usa la porta 80.
lo script è il classico script php di paypal:
$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:80\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://$url', 80, $errno, $errstr, 30);
if (!$fp)
{
// HTTP ERROR
// $errstr - $errno
$this->sendReport();
return FALSE;
}
else
{
fputs ($fp, $header . $req);
while (!feof($fp))
{
$res = fgets ($fp, 1024);
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;
}
non tenete conte delle graffe.
Lo script sembra abbia problema con la veriabile $res cioè non a ha nessun valore è come se fosse vuota infatti se al posto di "VERIFIED" scrivo "", lo script procede bene.
in teoria il socket funziona perchè altrimenti lo script si dovrebbe interrompere prima: alla if (!$fp){errore} e quindi ho escluso il problema della porta 80 ma è come se paypal non mi inviasse nessun messaggio.
è possibile che bisogna smanettare sulle impostazioni proprie di paypal?
preciso che sto lavornado in ambiente sandbox.
help me please!!