我在 Symfony 5.4 專案中實施 PayPal Checkout ( https://developer.paypal.com/docs/checkout/standard/integrate/ )。
通過使用 Symfony HttpClient將 clientId 和 clientSecret 發送到 PayPal REST API ( https://developer.paypal.com/api/rest/authentication/ ) ,我有點卡住了檢索訪問令牌。
PayPal 定義了一個 curl 請求來獲取令牌:
curl -v -X POST "https://api-m.sandbox.paypal.com/v1/oauth2/token" \
-u "<CLIENT_ID>:<CLIENT_SECRET>" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials"
我試圖使用 Symfony 的 HttpClient 來做到這一點。不幸的是,沒有任何成功,因為我不知道如何通過選項。
我嘗試使用 CURLOPT_VERBOSE、CURLOPT_USERNAME、CURLOPT_HEADER 傳遞帶有 extra.curl 的選項(找不到 grant_type 選項的定義)。似乎在 extra.curl 中不允許設定標題和詳細模式,所以我嘗試在“正文”部分進行設定。那導致了401。
這是我嘗試過的:
$response = $this->httpClient->request('POST', 'https://api-m.sandbox.paypal.com/v1/oauth2/token', [
'extra' => [
'curl'=> [
CURLOPT_VERBOSE => 1,
CURLOPT_USERNAME => $clientId.':'.$clientSecret,
CURLOPT_HEADER => "Content-Type: application/x-www-form-urlencoded"
]
]
]);
或者:
$response = $this->httpClient->request('POST', 'https://api-m.sandbox.paypal.com/v1/oauth2/token', [
'body' => [
'Content-Type' => 'application/x-www-form-urlencoded',
'grant_type' => 'client_credentials'
],
'extra' => [
'curl'=> [
CURLOPT_USERNAME => $clientId.':'.$clientSecret,
]
]
]);
我找不到任何合適的 HttpClient curl 使用示例。所以基本上我想了解如何使用 HttpClient 實作 PayPal Auth 請求。對此的任何提示都將受到歡迎。
uj5u.com熱心網友回復:
使用'auth_basic'...
$response = $this->httpClient->request('POST', 'https://api-m.sandbox.paypal.com/v1/oauth2/token', [
'auth_basic' => [$clientId, $clientSecret],
// ...
]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/507052.html
標籤:卷曲 贝宝 贝宝休息 SDK symfony5 symfony5.4
上一篇:如何在容器內安裝curl?