I experienced the same error. This is due to recent updates that PayPal made: https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1766
You can fix this by adding this to your CURL options:
curl_setopt($ch, CURLOPT_SSLVERSION , 1);
or
CURLOPT_SSL_SSLVERSION => 1
EDIT: Full working settings
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_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close')); curl_setopt($ch, CURLOPT_SSLVERSION , 1);
Jaz parkyn
source share