我正在尝试从Pay Pal REST API获取访问令牌,请遵循以下文章:https://developer.paypal.com/docs/api/overview/#get-an-access-token
我的请求如下:
POST https://api.paypal.com/v1/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Accept-Language: en_US
Authorization: Basic [redacted]
Host: paypal.com
Content-Length: 31
Expect: 100-continue
Connection: Keep-Alive
grant_type=client_credentials
但我不断收到400 Bad Request
以下的回复数据:
{ “error”: “unsupported_grant_type”, “error_description”: “unsupported grant_type” }
我无法弄清楚为什么 - 据我所知,我完全按照说明操作了!
他们的“商人技术支持”绝对没有帮助。
答案 0 :(得分:1)
TLDR; PayPal REST API的GetAccessToken端点不修剪空格。
我解决了。精明的人会注意到以下差异:
Content-Length: 31
...
grant_type=client_credentials
数据只有29个字符 - 额外的两个是\r\n
回车和换行。
在代码中(我使用C#/ .NET),这是一个改变的问题:
writer.WriteLine("grant_type=client_credentials");
要
writer.Write("grant_type=client_credentials");
这纠正了这个问题。