Question

Je suis un débutant PHP relatif mise en œuvre un auditeur PayPal IPN et tout semble fonctionner très bien, sauf que je ne sais pas vraiment comment vérifier un code de réponse.

J'ai essayé quelque chose de laid avec cURL mais il ne fonctionne pas du tout (je ne suis pas cURL compréhension).

J'ai essayé ce morceau de code que je saisis de quelque part sur le net:

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

... mais il ne fonctionne pas (retourne $ RESPONSE_CODE = 0).

Alors maintenant, je débogage mon code IPN sans vérifier une réponse 200.

Quelqu'un peut-il conseiller plus expérimenté moi sur ce qui est la bonne façon / simple de vérifier cela?

Merci

Était-ce utile?

La solution

de get_headers ( url $ ), non get_headers ($ fp). À moins que je lis totalement faux (et il y a un autre mode que je ne l'ai jamais vu), vous devez transmettre l'URL que vous lisez, et non une poignée de prise. En fait, il ne semble son propre GET, il serait inutile pour votre tâche en cours.

fsockopen (...) est une fonction de niveau inférieur (TCP / IP). Il retourne une poignée de prise, et non une poignée de CURL. Quelle est la raison pour laquelle vous ne pouvez pas utiliser curl_getinfo (...) à ce sujet. Vous voulez quelque chose comme ça ...

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

sauf que je me souvienne, vous devez ajouter 'cmd = _notify-validate' aux champs de poste.

Ne pas utiliser fsockopen (...). Ouais, je sais, c'est ce que l'exemple de code Paypal fait. Mais il est censé fonctionner partout, et ne peut pas compter sur CURL en cours d'installation. Vous pouvez, afin de l'utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top