Exemplo n.º 1
0
        public async Task <PaymentInstrument> AddClientPayment(string clientId, AddClientPaymentParameter parameter)
        {
            if (string.IsNullOrWhiteSpace(clientId))
            {
                throw new ArgumentNullException(nameof(clientId));
            }

            if (parameter == null)
            {
                throw new ArgumentNullException(nameof(parameter));
            }

            var client  = _httpClientFactory.GetHttpClient();
            var jObj    = ToDto(parameter);
            var content = new StringContent(jObj.ToString(), Encoding.UTF8, "application/json");
            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri(_baseUrl + "/v0.1/customers/" + clientId + "/payment-instruments"),
                Content    = content
            };

            request.Headers.Add("Authorization", $"Bearer {parameter.AccessToken}");
            var serializedContent = await client.SendAsync(request).ConfigureAwait(false);

            // serializedContent.EnsureSuccessStatusCode();
            var json = await serializedContent.Content.ReadAsStringAsync();

            return(ToClientPaymentModel(JObject.Parse(json)));
        }
Exemplo n.º 2
0
        private static JObject ToDto(AddClientPaymentParameter parameter)
        {
            var result = new JObject();
            var card   = new JObject();

            card.Add("name", parameter.Name);
            card.Add("number", parameter.Number);
            card.Add("expiry_year", parameter.ExpiryYear);
            card.Add("expiry_month", parameter.ExpiryMonth);
            card.Add("cvv", parameter.Cvv);
            result.Add("type", "card");
            result.Add("card", card);
            return(result);
        }