You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用PayPal API获取令牌时遇“Authorization header无有效令牌”错误求助

问题分析与解决

你的代码核心错误是请求方法不匹配:

  • 你创建了一个Method.Post类型的RestRequest,但调用的是ExecuteGetAsync方法,这会强制把请求转为GET方式发送。而PayPal的v1/oauth2/token接口需要POST请求才能正确接收grant_type参数,GET请求会导致接口无法识别参数,进而返回invalid_token错误。

修正后的代码

var clientId = "yyyy";
var secret = "xxxx";

var client = new RestClient("https://api-m.sandbox.paypal.com/");
client.AddDefaultHeader("Authorization", "Basic " + 
Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", clientId, secret))));
var request = new RestRequest("v1/oauth2/token", Method.Post);
// 明确指定参数的Content-Type,匹配PayPal接口要求的格式
request.AddParameter("application/x-www-form-urlencoded", "grant_type=client_credentials", ParameterType.RequestBody);
    
var response = await client.ExecutePostAsync(request);

额外说明

  • 替换ExecuteGetAsync为ExecutePostAsync,确保请求方法与定义的一致。
  • 显式指定参数的Content-Type为application/x-www-form-urlencoded,这是PayPal令牌接口要求的参数格式,Postman会自动配置该头部,但手动编写代码时最好明确声明,避免RestSharp默认格式不匹配的潜在问题。

内容的提问来源于stack exchange,提问作者redoc01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:52:02