Domanda

Sono un parente newbie PHP implementazione di un ascoltatore PayPal IPN e tutto sembra funzionare bene, tranne che realmente non so come verificare la presenza di un codice di risposta.

ho provato qualcosa di brutto con l'arricciatura, ma non funziona affatto (io non sono cURL comprensione).

Ho provato questo pezzo di codice che ho afferrato da qualche parte sulla rete:

$fp = fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
$response_headers = get_headers($fp);
$response_code = (int)substr($response_headers[0], 9, 3);

... ma non funziona (restituisce $ RESPONSE_CODE = 0).

Così adesso, sto debug il mio codice IPN senza controllare per una risposta 200.

Qualcuno mi può consigliare più esperti su ciò che è il modo corretto / semplice per controllare questo?

Grazie

È stato utile?

Soluzione

E 'get_headers ( $ url ), non get_headers ($ fp). A meno che io sto leggendo totalmente sbagliata (e c'è qualche altro modo non ho mai visto), è necessario passare l'URL che stai leggendo da, non è un handle di socket. In realtà, lo fa a quanto pare proprio GET, quindi sarebbe inutile per la vostra attività corrente.

fsockopen (...) è una funzione (TCP / IP) di livello inferiore. Esso restituisce un handle di socket, non un manico CURL. Quale è il motivo per cui non è possibile utilizzare curl_getinfo (...) su di esso. Volete qualcosa di simile ...

$fp = curl_init('https://www.sandbox.paypal.com/cgi-bin/webscr');
curl_setopt($fp, CURLOPT_POST, true);
curl_setopt($fp, CURLOPT_POSTFIELDS, $_POST);
curl_setopt($fp, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($fp);

$response_code = curl_getinfo($fp, CURLINFO_HTTP_CODE);

ad eccezione di quanto mi ricordo, è necessario aggiungere 'cmd = _notify-validate' ai campi postali.

Non utilizzare fsockopen (...). Sì, lo so, questo è ciò che il codice di esempio Paypal fa. Ma è destinata a correre ovunque, e non può contare su CURL in fase di installazione. È possibile, in modo da utilizzare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top