无法将邮政请求发送到paypal连接到内部Laravel应用程序



我有一个连接到PayPal Connect的应用程序。在PayPal Connect按钮时,请单击我被带到PayPal网站,并且我确实在身份验证后会收到他们发送的代码。但是随后我无法将邮政请求发送给使用授权_code的PayPal来要求用户信息我收到的错误。我遇到了这个错误:身份验证由于无效的身份验证凭证或丢失而失败。而且我很确定我的凭证很好。我想念什么吗?

这是贝宝给我的:

curl -X POST https://api.sandbox.paypal.com/v1/oauth2/token 
-H 'Authorization: Basic {Your Base64-encoded ClientID:Secret}=' 
-d 'grant_type=refresh_token&refresh_token={refresh token}'

我正在使用guzzle发送发布请求。请参阅下面的代码

$client = new GuzzleHttpClient();
$headers = [
    'Authorization' => 'Basic clientID:clientSecret'
];
$response = $client->request('POST',
'https://api.sandbox.paypal.com/v1/oauth2/token',
[
    'grant_type ' => 'authorization_code',
    'code' => $data['code']
], 
$headers);

查看PayPal API文档,似乎您的授权标题不正确。

授权请求标题: BASE 64编码的客户ID和秘密凭证,由 冒号 (:(。使用合作伙伴的凭据。

您可以使用php的base64_encode((函数来执行此操作。

$client = new GuzzleHttpClient();
$authorizationString = base64_encode($clientId . ':' . $clientSecret);
$client->request(
    'POST', 
    'https://api.sandbox.paypal.com/v1/oauth2/token', 
    [
        'headers' => [
            'Authorization' => 'Basic ' . $authorizationString
        ], 
        'form_params' => [
            'grant_type ' => 'authorization_code',
            'code' => $data['code']
        ]
    ]
);

相关内容

  • 没有找到相关文章

最新更新