Frage

Ich bin ein relativ PHP Neuling einen PayPal IPN Hörers Implementierung und alles scheint zu funktionieren gut, außer ich weiß nicht wirklich, wie für einen Antwortcode zu überprüfen.

Ich habe etwas hässlich mit cURL versucht, aber es funktioniert nicht überhaupt (ich bin nicht verstehen cURL).

Ich habe dieses Stück Code versuche, dass ich von irgendwo im Netz gepackt:

$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);

... aber es funktioniert nicht (kehrt $ RESPONSE_CODE = 0).

So jetzt, ich bin Debuggen meines IPN-Code ohne 200 für eine Antwort zu überprüfen.

Kann jemand mehr Erfahrung rät mich auf, was die richtige / einfache Möglichkeit, dies zu überprüfen?

Danke

War es hilfreich?

Lösung

Es ist get_headers ( url $ ), nicht get_headers ($ fp). Es sei denn, lese ich total falsch es (und es gibt einige andere Modus ich nie gesehen habe), müssen Sie es die URL, um von Ihnen lesen, nicht einen Socket-Handle. Eigentlich ist es anscheinend hat seine eigenen GET, so dass es für die aktuelle Aufgabe nutzlos sein würde.

fsockopen (...) eine untere Ebene (TCP / IP) Funktion. Es gibt einen Socket-Handle, kein CURL Griff. Welches ist, warum Sie nicht curl_getinfo (...) auf sie verwenden können. Sie wollen so etwas wie dieses ...

$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);

außer wie ich mich erinnere, müssen Sie 'cmd = _notify-validate' auf die Post Felder hinzuzufügen.

Verwenden Sie fsockopen nicht (...). Ja, ich weiß, dass das, was der Paypal Beispielcode tut. Aber es soll überall laufen, und verlassen sich nicht auf CURL installiert. Sie können es so verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top