尝试使用 PayPal 的 api 并需要帮助将 Curl 转换为 PHP

Posted

技术标签:

【中文标题】尝试使用 PayPal 的 api 并需要帮助将 Curl 转换为 PHP【英文标题】:Trying to use PayPal's api and need help converting Curl to PHP 【发布时间】:2014-08-24 17:42:04 【问题描述】:

这是 PayPal 获取访问令牌的基本沙盒请求。

$curl = "curl -v https://api.sandbox.paypal.com/v1/oauth2/token
-H 'Accept: application/json' \
-H 'Accept-Language: en_US' \
-u 'EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp'
-d 'grant_type=client_credentials'";

到目前为止,这是我所获得的转换,但它失败了。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/x-www-form-urlencoded',
    'Connection: Keep-Alive',
    'Accept-Language: en_US',
    'Accept: applictaion/json'
));
curl_setopt($ch, CURLOPT_USERPWD, 'EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'grant_type=client_credentials');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

print 'Running curl';

$res = curl_exec($ch);
echo $res;
curl_close($ch);

【问题讨论】:

【参考方案1】:

尝试删除

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/x-www-form-urlencoded',
    'Connection: Keep-Alive',
    'Accept-Language: en_US',
    'Accept: applictaion/json'
));

我复制并粘贴了您的代码,只是删除了 CURLOPT_HTTPHEADER 选项,它起作用了!

【讨论】:

我不知道你是怎么做到的,我按照你说的做了,屏幕上什么也没有显示 你能卷曲吗?你的 curl 扩展可能有问题。这也可能对您有所帮助:***.com/questions/15729167/…

以上是关于尝试使用 PayPal 的 api 并需要帮助将 Curl 转换为 PHP的主要内容,如果未能解决你的问题,请参考以下文章

我需要帮助查找 Paypal ClientID 和 ClientSecret ID [关闭]

使用 Omnipay 将 PayPal REST API 集成到 Laravel - 需要 card 参数

使用 Paypal API / SDK,我将如何检查某个订阅 ID? C#

需要帮助使用 PayPal REST API 或 C# 中的任何其他方法获取 PayPal 交易

Paypal : 使用 API 凭证转账

使用 PayPal REST API 进行定期付款