2017-05-25 7 views
1

私はエラーを以下の取得: "リモートサーバーがエラーを返しました:(401)許可されていない" この行に:ここストライプ401 - はありません、有効なAPIキー - C#

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 [email protected]")); 
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 */} 

私は、トークンが複数回使用することはできませんので、エラーが発生していたと思ったが、私はそれを変更し、同じエラーを得ました。私は何が原因でエラーが発生しているのか分かりません。

+0

メッセージはクリアです。あなたのAPIキーは無効です。あなたが間違った鍵を入れてしまったり、鍵を期待通りに送信していないかもしれません。あなたが設定したAPIキーのデバッグ... – Zico

+0

残念ながら、APIキーは正しいです。問題は私がストライプの権限を行使しないということでなければならないと思う。 – wieblinger

+0

生のC#を使用してStripeコールについてわからない場合。あなたは簡単にするためにいくつかのライブラリを使用する必要があります。残念ながら、StripeのC#の公式ライブラリはありません。第三者の図書館(https://stripe.com/docs/libraries#c-sharp)を見ることができます。 – Zico

答えて

1

秘密鍵の変数を初期化していますが、使用していません。リクエストURLを修正してみてください。"https://" + clientSecretKey + ":@api..."

これはもちろん、clientSecretKeyがストライプキーであると仮定しています。

秘密鍵は、ユーザー/クライアントから隠されていないサーバーのどこかに置いてください。

1

ここでの問題は、APIキーを渡しているが、StripeのAPIが想定しているベアラ認証を使用していないことです。あなたはこのようなあなたのAuthorizationヘッダーを変更する必要があります。

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

私はあなたがサードパーティのライブラリを使用することはできませんが、私は念のために1を言及したかったコメントで言及知っています。 Stripe.netを使用すると、StripeのAPIを.Netで簡単にロジックを書き直すことなく簡単に使用できます。エラーを処理し、パラメータとサブハッシュを適切に処理し、認証とJSONのデコードを管理します。このすべてが、このライブラリがすべてあなたのために処理する間に、最初からビルドするには多くの時間と試行錯誤が必要です。

+0

変更を加えましたが、このエラーが発生しました。「リモートサーバーからエラーが返されました:(403)禁止」図書館についての情報をありがとう。 – wieblinger

+0

@wieblingerこれはAPIキーの問題のようです。残念なことに、詳細な説明なしに言うのは難しいです。私はストライプのサポートに話すことをお勧めします:https://support.stripe.com/email – koopajah

+0

私は「権限のない」応答を得ていたのと同様の問題がありました。私の場合、私のHttpClientには私のシステム用のデフォルトのAuthorizationヘッダーがあり、それはStripe Connectへの呼び出しを行う前に削除する必要があった –

関連する問題