Exemple #1
0
        private async Task <HttpResponseMessage> Invoke(
            HttpMethod httpMethod,
            string path,
            SdkAuthorization authorization,
            HttpContent httpContent,
            CancellationToken cancellationToken,
            string idempotencyKey)
        {
            CheckoutUtils.ValidateParams("httpMethod", httpMethod, "authorization", authorization);
            var httpRequest = new HttpRequestMessage(httpMethod, path)
            {
                Content = httpContent
            };

            _log.LogInformation(@"{HttpMethod}: {Path}", httpMethod, path);

            httpRequest.Headers.UserAgent.ParseAdd(
                "checkout-sdk-net/" + CheckoutUtils.GetAssemblyVersion <CheckoutSdk>());
            httpRequest.Headers.TryAddWithoutValidation("Authorization", authorization.GetAuthorizationHeader());

            if (!string.IsNullOrWhiteSpace(idempotencyKey))
            {
                httpRequest.Headers.Add("Cko-Idempotency-Key", idempotencyKey);
            }

            return(await _httpClient.SendAsync(httpRequest, cancellationToken));
        }
Exemple #2
0
        public ApiClient(IHttpClientFactory httpClientFactory, Uri baseUri)
        {
            CheckoutUtils.ValidateParams("httpClientFactory", httpClientFactory, "baseUri", baseUri);
            var httpClient = httpClientFactory.CreateClient();

            httpClient.BaseAddress = baseUri;
            _httpClient            = httpClient;
        }
Exemple #3
0
            public CheckoutOAuthSdkBuilder Scopes(params OAuthScope[] scopes)
            {
                CheckoutUtils.ValidateParams("scopes", scopes);
                foreach (var scope in scopes)
                {
                    _scopes.Add(scope);
                }

                return(this);
            }
Exemple #4
0
 public OAuthSdkCredentials(
     IHttpClientFactory httpClientFactory,
     Uri authorizationUri,
     string clientId,
     string clientSecret,
     ISet <OAuthScope> scopes) : base(PlatformType.DefaultOAuth)
 {
     CheckoutUtils.ValidateParams(
         "httpClientFactory", httpClientFactory,
         "authorizationUri", authorizationUri,
         "clientId", clientId,
         "clientSecret", clientSecret,
         "scopes", scopes);
     _clientId               = clientId;
     _clientSecret           = clientSecret;
     _scopes                 = scopes;
     _httpClient             = httpClientFactory.CreateClient();
     _httpClient.BaseAddress = authorizationUri;
 }
Exemple #5
0
        private async Task <HttpResponseMessage> SendRequestAsync(
            HttpMethod httpMethod,
            string path,
            SdkAuthorization authorization,
            object requestBody,
            CancellationToken cancellationToken,
            string idempotencyKey)
        {
            CheckoutUtils.ValidateParams("httpMethod", httpMethod, "authorization", authorization);

            HttpContent httpContent = null;

            if (requestBody != null)
            {
                if (requestBody is MultipartFormDataContent content)
                {
                    httpContent = content;
                }
                else
                {
                    httpContent = new StringContent(_serializer.Serialize(requestBody), Encoding.UTF8,
                                                    "application/json");
                }
            }

            HttpResponseMessage httpResponse = await Invoke(
                httpMethod,
                path,
                authorization,
                httpContent,
                cancellationToken,
                idempotencyKey);

            await ValidateResponseAsync(httpResponse);

            return(httpResponse);
        }
 public object Deserialize(string payload, Type objectType)
 {
     CheckoutUtils.ValidateParams("payload", payload);
     return(JsonConvert.DeserializeObject(payload, objectType, _serializerSettings));
 }
 public string Serialize(object payload)
 {
     CheckoutUtils.ValidateParams("payload", payload);
     return(JsonConvert.SerializeObject(payload, _serializerSettings));
 }