curl - 将 paypal curl get access token 请求转换为 guzzle

标签 curl paypal internal guzzle

我需要一些关于 paypal rest api 的帮助。

我使用 guzzle 作为 http 客户端来使用 paypal api

当我在命令行中使用 curl 尝试 paypal 示例时,它确实有效

但是当我想用 guzzle 重现它时,我总是从 paypal 得到 Internal 500 ERROR..

这是官方文档中的 paypal curl 示例(请在此处查看 https://developer.paypal.com/webapps/developer/docs/integration/direct/make-your-first-call/):

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
  -H "Accept: application/json" \
  -H "Accept-Language: en_US" \
  -u "clientId:clientSecret" \
  -d "grant_type=client_credentials"

这是我的 Guzzle 代码:

/**
 * Etape 1 récuperer un access token
 */
$authResponse = $client->get("https://api.sandbox.paypal.com/v1/oauth2/token", [
    'auth' =>  [$apiClientId, $apiClientSecret, 'basic'],
    'body' => ['grant_type' => 'client_credentials'],
    'headers' => [
    'Accept-Language' => 'en_US',
    'Accept'     => 'application/json' 
    ]
]);

echo $authResponse->getBody();

我尝试过 auth basic、digest,但到目前为止都没有用。

感谢您对此的任何帮助!

最佳答案

这是使用 guzzlehttp

$uri = 'https://api.sandbox.paypal.com/v1/oauth2/token';
$clientId = \\Your client_id which you got on sign up;
$secret = \\Your secret which you got on sign up;

$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $uri, [
        'headers' =>
            [
                'Accept' => 'application/json',
                'Accept-Language' => 'en_US',
               'Content-Type' => 'application/x-www-form-urlencoded',
            ],
        'body' => 'grant_type=client_credentials',

        'auth' => [$clientId, $secret, 'basic']
    ]
);

$data = json_decode($response->getBody(), true);

$access_token = $data['access_token'];

关于curl - 将 paypal curl get access token 请求转换为 guzzle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24951909/

相关文章:

php - 使用 cURL 发布到数据库时出现问题

linux - cURL cookie 语法(来自 bash CLI,不是 cookie 文件)

Paypal 'Pay now' 按钮与 wordpress 中的联系表

paypal - 即时付款通知 (IPN)

android - 没有 SD 卡功能的平板电脑的内存限制

c - 为什么结构定义有内部链接?

php - 设置全局 PHP-CURL 上传和下载速度限制?

php - 如何只加载 html(并跳过媒体文件)

android - Paypal沙盒环境下如何关联API凭据和APP Id

Cakephp 从 Controller 到另一个 Controller 的内部重定向