2016-05-16 241 views
2

你好我使用的代码被其他人认为已经得到它的工作,并获得他们的令牌信息检索。代码如下:PayPal获取访问令牌与PHP cURL

$ch = curl_init(); 
$clientId = "myclientid"; 
$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_SSLVERSION , 6); //NEW ADDITION 
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); //THIS CODE IS NOW WORKING! 

我取回从Paypal API with PHP and cURL这个代码,并已经看到了一些其他民族的代码实现的,所以我认为它的工作原理。然而,即使我提供了正确的客户端ID和密码(可能是最近的更新已打破此代码?),我只收到没有回应。

通过贝宝上获得访问令牌所提供的指南发现这里 - >https://developer.paypal.com/docs/integration/direct/make-your-first-call/ 但它表明了卷曲的解决方案,而不是通过PHP cURL扩展因此它的小有一点神秘的给我。任何帮助?

回答

1

看来现在需要声明使用什么类型的SSL版本,因此插入curl_setopt($ch, CURLOPT_SSLVERSION , 6); //tlsv1.2时上述代码将工作。