저는이 문제를 디버깅하거나 온라인에서 답을 찾기 위해 지난 5 시간 동안 노력했습니다. 샌드 박스에서 테스트 중이지만 동일한 문제가 라이브 서버에 존재합니다. 샌드 박스가 아닌 코드에 문제가 있음을 나타내지 만 그게 무엇인지 파악할 수 없습니다. 내 코드는 기본적으로 PayPal 예 here에서 직접 복사됩니다. PayPal IPN 응답이 비어 있습니다.
// Step 2: POST IPN data back to PayPal to validate
$ch = curl_init();
$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
if(!($res = curl_exec($ch))) {
error_log("Got " . curl_error($ch) . " when processing IPN data");
mail($notifyemail,'CURL error on IPN',"Got " . curl_error($ch) . " when processing IPN data");
curl_close($ch);
exit;
}
curl_close($ch);
는 (나는 간결이 코드 위의 모든 것을 왼쪽하지만,이 전에 모든 코드가. 내가
$req
모두 문자열과 배열을 테스트 한 테스트하고 올바르게 작동 확인 안심)
샌드 박스에서 테스트 할 때(포트 443이 열려 있음을 나에게 제안 함)이라고 말합니다. 그러나 $ res는 항상 비어 있습니다. 낯선 사람이라도, 디버깅하는 동안 내 코드가 내 단계 전후의 curl_getinfo($ch)
단계의 내용을 이메일로 보내고 두 경우 모두 URL을 제외한 모든 항목이 비어있는 단계를 추가했습니다. 옵션이없는 것처럼 요청에 전혀 추가되지 않았습니다. 나는 그것이 정상인지 여부를 알기에 충분한 경험이 없습니다.
페이팔은 IPN의 말한다 :
HTTP response code: 200
Delivery status: Sent
No. of retries: 0
IPN type: Transaction made
내가 https://github.com/Quixotix/PHP-PayPal-IPN에서 라이브러리에 교환하고 대신에를 사용하여, 그것이 나에게 어떤 이해가되지 않는 (연결할 수 없습니다) cURL error: [7]
를 기록했는데, 이후 악수가 다시 확인되었습니다. $listener->getTextReport()
의 내용을 나에게 이메일로 보내었지만 오류 정보는 전혀 포함되어 있지 않습니다. use_ssl
및 use_curl
의
시도 다양한 조합 내 오류 로그는 다음과 같습니다
이[05-Oct-2016 16:40:13 America/Toronto] cURL error: [7]
[05-Oct-2016 16:47:22 America/Toronto] PHP Warning: fsockopen(): unable to connect to ssl://www.sandbox.paypal.com:443 (Operation not permitted) in /home/[stuff]/public_html/[stuff]/ipnlistener.php on line 144
[05-Oct-2016 16:47:22 America/Toronto] fsockopen error: [1] Operation not permitted
[05-Oct-2016 16:50:39 America/Toronto] cURL error: [7]
[05-Oct-2016 16:51:55 America/Toronto] PHP Warning: fsockopen(): unable to connect to www.sandbox.paypal.com:80 (Operation not permitted) in /home/[stuff]/public_html/[stuff]/ipnlistener.php on line 144
[05-Oct-2016 16:51:55 America/Toronto] fsockopen error: [1] Operation not permitted
내가 잘못 얻거나 내려다 보이는 해요 뭔가가 있어야하지만 내 인생 내가 무엇을 알아낼 수 없습니다 될 수 있습니다. 어떤 도움이라도 대단히 감사 할 것입니다.