首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Larave8中编写带基本身份验证的cURL请求

如何在Larave8中编写带基本身份验证的cURL请求
EN

Stack Overflow用户
提问于 2020-12-25 18:17:46
回答 1查看 1.2K关注 0票数 1

我有以下来自PayPal Payout SDK的代码,用于从PayPal应用编程接口获取访问令牌。

代码语言:javascript
运行
复制
curl -v POST https://api-m.sandbox.paypal.com/v1/oauth2/token \
  -H "Accept: application/json" \
  -H "Accept-Language: en_US" \
  -u "CLIENT_ID:SECRET" \
  -d "grant_type=client_credentials"

为了获得访问令牌,我尝试了以下方法。

代码语言:javascript
运行
复制
$client_id = "AWN5555";
$secret = "44444";
$url = "https://api-m.sandbox.paypal.com/v1/oauth2/token";
$data = ['grant_type:client_credentials'];

$response = Http::withHeaders([
    'Accept:application/json',
    'Accept-Language:en_US',
    "Content-Type: application/x-www-form-urlencoded"
])->withBasicAuth($client_id, $secret)
    ->post($url, $data);

// OR

$response = $client->request('POST', $url, [
    'headers' => [
        'Accept' => 'application/json',
        'Accept-Language' => 'en_US',
        'Authorization ' => ' Basic ' .
            base64_encode($client_id . ':' . $secret)
    ],
    'form_params' => [
        'grant_type' => 'client_credentials',
    ]
]);
EN

回答 1

Stack Overflow用户

发布于 2020-12-26 01:23:37

laravel 7或8解决方案:

代码语言:javascript
运行
复制
$client_id = "AWN5555";
$secret = "44444";
$url = "https://api-m.sandbox.paypal.com/v1/oauth2/token";
$data = [
            'grant_type' => 'client_credentials',
        ];

        $response =  Http::asForm()
                            ->withBasicAuth($client_id, $secret)
                            ->post($url, $data);

php原生解决方案:

代码语言:javascript
运行
复制
$client_id = "AWN5555";
$secret = "44444";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api-m.sandbox.paypal.com/v1/oauth2/token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'grant_type=client_credentials',
CURLOPT_HTTPHEADER => [
    'Authorization: Basic '.base64_encode($client_id.':'.$secret)
  ],
]);

$response = curl_exec($curl);

curl_close($curl);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65447164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档