私はPayPalのAPIにアクセスして、C#.NET Winformsアプリケーションを使用して請求書をクライアントに送信しようとしていますが、私はひどく混乱しています。別のユーザーが接続するためのソリューションとして、このコードを投稿:C#PayPal REST API Winformsアプリでは、認証コードはどこにありますか?
public class PayPalClient
{
public async Task RequestPayPalToken()
{
// Discussion about SSL secure channel
// http://stackoverflow.com/questions/32994464/could-not-create-ssl-tls-secure-channel-despite-setting-servercertificatevalida
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
try
{
// ClientId of your Paypal app API
string APIClientId = "**_[your_API_Client_Id]_**";
// secret key of you Paypal app API
string APISecret = "**_[your_API_secret]_**";
using (var client = new System.Net.Http.HttpClient())
{
var byteArray = Encoding.UTF8.GetBytes(APIClientId + ":" + APISecret);
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
var url = new Uri("https://api.sandbox.paypal.com/v1/oauth2/token", UriKind.Absolute);
client.DefaultRequestHeaders.IfModifiedSince = DateTime.UtcNow;
var requestParams = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("grant_type", "client_credentials")
};
var content = new FormUrlEncodedContent(requestParams);
var webresponse = await client.PostAsync(url, content);
var jsonString = await webresponse.Content.ReadAsStringAsync();
// response will deserialized using Jsonconver
var payPalTokenModel = JsonConvert.DeserializeObject<PayPalTokenModel>(jsonString);
}
}
catch (System.Exception ex)
{
//TODO: Log connection error
}
}
}
public class PayPalTokenModel
{
public string scope { get; set; }
public string nonce { get; set; }
public string access_token { get; set; }
public string token_type { get; set; }
public string app_id { get; set; }
public int expires_in { get; set; }
}
私は私のプロジェクトでは、コードを貼り付けることが適切であるところ、私は理解することはできません、これは先に私の少なくとも1つのステップで怖いです。 C#Winformsという新しいアプリケーションを作成したとしましょう。請求書の作成などの詳細に慣れることなく、PayPal APIをサポートするにはどのようなコードが必要ですか?プロジェクトのどこに行くのですか?私はPayPalからアプリの承認を取得する必要があることを知っているが、私はC#とPayPalの良い "Getting Started"ガイドを見つけるのが難しい。 PayPalにREST APIアプリケーションを作成しました。そのため、クライアントIDとOauth認証に渡す「秘密」があります。私はそれを行う場所を見つけることができません。
ありがとうございます。私はいくつかのC#.NETプログラミング経験を持っていますが、正直なところ私のプログラミング経験は主にVB6に戻っています。お待ち頂きまして、ありがとうございます!!
サイドノート、[リクエストごとに新しいHttpClientを作成しない](https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/) – maccettura