[英]How to send Stripe's secret key when making a raw HTTP POST request to Stripe
因為Stripe .NET nuget包/庫是在Stripe API的v1上構建的,從那時起一些事情發生了變化,我正在向Stripe端點發出原始HTTP請求,以向現有客戶的帳戶添加新的信用卡。
我的問題是:如何發送Stripe密鑰? 看看這個CURL請求 ,我假設它是作為基本身份驗證標頭發送的。
所以,這就是我做的:
var createCardUrl = string.Format(
"https://api.stripe.com/v1/customers/{0}/sources",
stripeCustomerId);
dynamic headers = new ExpandoObject();
headers.Authorization = string.Format("Basic {0}", Constants.StripeSecretKey);
dynamic body = new ExpandoObject();
body.source = stripeToken;
dynamic cardAdditionResult = Http.MakePostRequest(
createCardUrl,
headers,
body)
.ObjectFromJson();
我的MakePostRequest
如下所示。
public static string MakePostRequest(string url,
IEnumerable<KeyValuePair<string, object>> headers = null,
string body = null)
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
if (headers != null)
{
AddHeaders(request, headers);
}
if (!string.IsNullOrEmpty(body))
{
var data = Encoding.ASCII.GetBytes(body);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
return responseString;
}
我從Stripe收到400(錯誤請求)。 顯然,我不是按照必須的方式發送Stripe密鑰。
如果你正在使用基本身份驗證,Stripe secret api密鑰應該是base 64編碼,然后有一個:
之后(因為它會划分用戶名和密碼)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.