【问题标题】:Stripe 401 - No valid API key provided - C#Stripe 401 - 没有提供有效的 API 密钥 - C#
【发布时间】:2017-10-25 18:17:55
【问题描述】:

我收到以下错误:“远程服务器返回错误:(401) Unauthorized”在这一行:

using (HttpWebResponse httpResponse = request.GetResponse() as HttpWebResponse) {}

完整代码如下:

string clientSecretKey = ConfigurationManager.AppSettings["ClientSecretKey"];

const string ChargeUrl = "https://api.stripe.com/v1/charges?amount={0}&currency={1}&source={2}&description={3}"; 
string requestUrl = HttpUtility.UrlPathEncode(
String.Format(ChargeUrl, 1000, "usd", "tok_19xLu8HN9aKw9vrkUsflNWOI", "Test charge to text@example.com") );
HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest; 

request.Headers.Add("Authorization", "sk_test_example"); 
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";

using (HttpWebResponse httpResponse = request.GetResponse() as HttpWebResponse)
{/* some code */} 

一开始我以为是token不能使用超过一次导致的错误,但是我改了,还是一样的错误。我不确定是什么导致了错误。

【问题讨论】:

  • 消息很清楚。您的 API 密钥无效。可能是您输入了错误的密钥或未按预期发送密钥。调试您设置的 API 密钥...
  • 很遗憾,API 密钥是正确的。我想问题一定是我没有把条带授权做对。
  • 如果您不确定使用原始 C# 的 Stripe 调用。您应该使用一些库来简化它。不幸的是,Stripe 没有 C# 的官方库。你可以看看一些第三方libraries
  • 我忘了说我不能使用第三方库。

标签: c# stripe-payments http-status-code-401 stripe.net


【解决方案1】:

这里的问题是您正在传递 API 密钥,但没有使用 Stripe 的 API 所期望的 Bearer 身份验证。您需要像这样更改 Authorization 标头:

request.Headers.Add("Authorization", "Bearer sk_test_example");

我知道您在 cmets 中提到您不能使用第三方库,但我想提一个以防万一。 Stripe.net 让您可以轻松地在 .Net 中使用 Stripe 的 API,而无需自己重写逻辑。正确处理错误、编码参数和子哈希、管理身份验证和 JSON 解码,所有这些都需要大量时间和反复试验才能从头开始构建,而这个库会为您处理所有这些。

【讨论】:

  • 我进行了更改,但现在我收到此错误“远程服务器返回错误:(403) Forbidden。”感谢您提供有关图书馆的信息。
  • @wieblinger 这看起来像是 API 密钥的问题。不幸的是,没有更多细节很难说。我建议与 Stripe 支持人员交谈:support.stripe.com/email
  • 我遇到了类似的问题,我收到了“未经授权”的回复。在我的情况下,我的 HttpClient 有我系统的默认授权标头,需要在调用 Stripe Connect 之前将其删除
【解决方案2】:

您正在为密钥初始化一个变量,但没有使用它。尝试修改请求url以"https://" + clientSecretKey + ":@api..."开头

当然,这是假设 clientSecretKey 是 Stripe 键。

小心地将密钥放在服务器上的某个位置,以免用户/客户端无法看到它。

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 2019-06-29
    • 2021-05-29
    • 2021-05-25
    • 1970-01-01
    • 2015-11-23
    • 2019-04-30
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多