2013-02-19 8 views
6

Ich benutze curl, um das PayPal IPN zu überprüfen, aber es wirft Fehler: SSL certificate problem: unable to get local issuer certificate. Derselbe Code funktioniert auf dem Entwicklungsserver und wenn ich zum Client-Server gewechselt bin, funktioniert es nicht.PayPal IPN: lokales Ausstellerzertifikat nicht erhalten

Muss ich SSL-Zertifizierung kaufen, um die Zahlung per PayPal Express-Checkout oder jede Änderung in meinem Coding-Teil oder eine Einstellung auf dem Server zu machen machen.Curl ist bereits auf dem Server aktiviert. Jede Hilfe wird geschätzt.

Mein Code unten, und seine eine reduzierte Testseite für diese:

$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

mögliches Duplikat von [Paypal Access - SSL-Zertifikat: kein lokales Ausstellerzertifikat erhalten] (http://stackoverflow.com/questions/17478283/paypal-access-ssl-certificate-unable-to-get-local-issuer -Zertifikat) – jpklzm

Antwort

8

Sie cURL doch sagen, die SSL-Verbindung zu überprüfen, aber Sie sagen es nicht, was gegen zu validieren;

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

Achten Sie darauf, Sie auf ein up-to-date Liste der CA-Punkt für Vertrauen und fügte hinzu:

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

Wenn Sie nicht über eine up-to-date cacert Liste selbst, ich Ich würde empfehlen, das vom cURL-Betreuer gelieferte herunterzuladen: cacert.pem.

4

Sie wollen CURLOPT_CAINFO (zeigt auf eine PEM-Datei) nicht CURLOPT_CAPATH (zeigt auf ein Verzeichnis mit PEM-Dateien).