1

私は現在、PayPal を使用してクレジット カード取引を処理する ASP.Net MVC 4 アプリケーションに取り組んでいます。PayPal RESTFul API を使用してすべてのセットアップのほとんどを取得しましたが、何らかの理由で PayPal の最新バージョンの SDK が (NUGET を介して) 動作したくないため、ASP.Net の最新かつ最高のものを使用して自分で API 呼び出しを行うことにしました。HttpClient()(とにかくこの方がいい)

私がする必要があるのは次のとおりです(PayPalのドキュメントからコピー)

 curl -v https://api.sandbox.paypal.com/v1/payments/payment \
 -H "Content-Type:application/json" \
 -H "Authorization:Bearer EEwJ6tF9x5WCIZDYzyZGaz6Khbw7raYRIBV_WxVvgmsG" \
 -d   '{
        "intent": "sale",
        "rest_of_the_data": "I didn't include it here"
      }'

私が今立ち往生しているの-H "Authorization:Bearer EEwJ6tF9x5WCIZDYzyZGaz6Khbw7raYRIBV_WxVvgmsG" \は、私が持っている3番目のパラメーターが機能しないことです:

using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(                                    System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1} {2}", "Authorization", accessToken.token_type, accessToken.access_token))));
    var response = client.PostAsync<Payment>(endPoint + "/v1/payments/payment", payment, new JsonMediaTypeFormatter());
    if (response.Result.IsSuccessStatusCode)
       {
          var responseContent = response.Result.Content;
          var responseString = responseContent.ReadAsAsync<Payment>().Result;
       }
}

上記のコードを使用すると、次の応答が得られます。

Result = {StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Date: Thu, 13 Jun 2013 07:06:50 GMT
  Server: Apache-Coyote/1.1
  Content-Length: 0
  Content-Type: application/json
}}

今、私は正しい資格情報を渡していると確信してい-H "Authorization:Bearer...ますが、使用すべきではないと信じているに従って正しくフォーマットされていないとclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(...思いますが、これを機能させるための代替を見つけることができないようです. 何を使用すればよいですか?

この点で何か助けていただければ幸いです。

4

1 に答える 1

0

ヘッダー値の設定が間違っているようです。動作するかどうかを確認するには、次のことを試してください。

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(accessToken.access_token));
于 2013-06-13T08:30:48.640 に答える