2013-02-19 15 views
6

Używam curl do weryfikacji IPN PayPal, ale generuje błąd: SSL certificate problem: unable to get local issuer certificate. Ten sam kod działa na serwerze programistycznym i po przejściu na serwer klienta nie działa.PayPal IPN: nie można uzyskać certyfikatu lokalnego wystawcy

Czy muszę wykupić certyfikat SSL, aby dokonać płatności za pośrednictwem ekspresowego zamówienia PayPal lub jakiejkolwiek zmiany w mojej części kodu lub jakichkolwiek ustawień, które należy wprowadzić na serwerze.Curl jest już włączony na serwerze. Każda pomoc zostanie doceniona.

poniżej Mój kod, a jej zmniejszona strona testowa dla tego:

$req = HAVING PARAMETERS FROM PAYPAL; 

$ch = curl_init("https://www.sandbox.paypal.com/cgi-bin/webscr"); 
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_HTTPHEADER, array('Connection: Close')); 

curl_exec($ch); 
if(curl_errno($ch)) 
{ 
    echo 'Curl error: ' . curl_error($ch); 
} 
+0

możliwy duplikat [dostęp Paypal - certyfikat SSL: nie można uzyskać certyfikatu lokalnego wystawcy] (http://stackoverflow.com/questions/17478283/paypal-access-ssl-certificate-unable-to-get-local-issuer -certyfikat) – jpklzm

Odpowiedz

8

Mówisz cURL aby sprawdzić poprawność połączenia SSL, ale nie mówisz to co do sprawdzania poprawności przeciwko;

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 

Upewnij się wskazywać na liście up-to-date z CA zaufać dodając:

curl_setopt($ch, CURLOPT_CAPATH, "./cacert.pem"); 

Jeśli nie masz listy CAcert up-to-date siebie, ja zaleca się pobranie tej dostarczonej przez opiekuna cURL: cacert.pem.

4

Chcesz CURLOPT_CAINFO (punkty do pliku PEM), nie CURLOPT_CAPATH (punkty do katalogu zawierającego PEM plików).

Powiązane problemy