Paypal API with PHP and cURL Paypal API with PHP and cURL curl curl

Paypal API with PHP and cURL


Having a good trawl around I pieced together parts from developers with other problems. I successfully gained my access token using the following code:

<?php$ch = curl_init();$clientId = "myId";$secret = "mySecret";curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token");curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, $clientId.":".$secret);curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");$result = curl_exec($ch);if(empty($result))die("Error: No response.");else{    $json = json_decode($result);    print_r($json->access_token);}curl_close($ch);?>


@Lee point the right way but if u are using and old php version it wont work. But Lee version will not show up the error. Use these instead, i only add the error part to see what is going on.

$ch = curl_init();$clientId = "";$secret = "";curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token");curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, $clientId.":".$secret);curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");$result = curl_exec($ch);$err = curl_error($ch);$access_token="";if ($err) {  echo "cURL Error #:" . $err;}else{    $json = json_decode($result);   // print_r($json->access_token);    $access_token = $json->access_token;}

If u are having and old PHP version it is posible it wont work and it will show this error:

cURL Error #:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Just stack overflow it!Here they discuss the problem


JSON and US English appear to be the Defaults, but to be in perfect compliance, add the following line:

curl_setopt($ch, CURLOPT_HTTPHEADER, "Accept: application/json, Accept-Language: en_US");