public async Task <bool> CreditCardRecurrentTransactionDeactiveAsync(string recurrentPaymentId) { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(GetBaseAddressApi); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); client.DefaultRequestHeaders.TryAddWithoutValidation("MerchantId", _merchant.MerchantId); client.DefaultRequestHeaders.TryAddWithoutValidation("MerchantKey", _merchant.MerchantKey); client.DefaultRequestHeaders.TryAddWithoutValidation("RequestId", _merchant.RequestId); HttpResponseMessage response = await client.PutAsync(string.Format("/1/RecurrentPayment/{0}/Deactivate", recurrentPaymentId), null); if (response.StatusCode == System.Net.HttpStatusCode.InternalServerError) { throw new Exceptions.CieloeCommerceApiException("Ocorreu um erro interno"); } if (response.IsSuccessStatusCode) { return(true); } else { dynamic contentResult = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result.ToString()); string code = Convert.ToString(contentResult[0].Code); string description = CieloApiUtils.GetErrorApi(Convert.ToString(contentResult[0].Code)) != "" ? CieloApiUtils.GetErrorApi(Convert.ToString(contentResult[0].Code)) : contentResult[0].Message; throw new Exceptions.CieloeCommerceApiException(string.Format("{0} (Cod.{1})", description, code)); } } }
public async Task <bool> CreditCardRecurrentTransactionAlterPaymentAsync(CreditCardAlterPaymentInput input) { if ((Convert.ToDecimal(CieloApiUtils.ConvertToCents(input.PaymentAmount)) / 100) != input.PaymentAmount) { throw new Exception("Existe uma divergência no valor informada em relação a conversão para centavos"); } using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(GetBaseAddressApi); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); client.DefaultRequestHeaders.TryAddWithoutValidation("MerchantId", _merchant.MerchantId); client.DefaultRequestHeaders.TryAddWithoutValidation("MerchantKey", _merchant.MerchantKey); client.DefaultRequestHeaders.TryAddWithoutValidation("RequestId", _merchant.RequestId); var content = new StringContent(JsonConvert.SerializeObject(new { Type = input.PaymentType.GetEnumDescriptionAttribute(), Amount = CieloApiUtils.ConvertToCents(input.PaymentAmount), Installments = input.PaymentInstallments, SoftDescriptor = input.PaymentSoftDescriptor, CreditCard = new { Brand = input.CreditCardBrand.GetEnumDescriptionAttribute(), Holder = input.CreditCardHolder, CardNumber = input.CreditCardNumber, ExpirationDate = input.CreditCardExpirationDate } }), System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PutAsync(string.Format("/1/RecurrentPayment/{0}/Payment", input.RecurrentPaymentId), content); if (response.StatusCode == System.Net.HttpStatusCode.InternalServerError) { throw new Exceptions.CieloeCommerceApiException("Ocorreu um erro interno"); } if (response.IsSuccessStatusCode) { return(true); } else { dynamic contentResult = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result.ToString()); string code = Convert.ToString(contentResult[0].Code); string description = CieloApiUtils.GetErrorApi(Convert.ToString(contentResult[0].Code)) != "" ? CieloApiUtils.GetErrorApi(Convert.ToString(contentResult[0].Code)) : contentResult[0].Message; throw new Exceptions.CieloeCommerceApiException(string.Format("{0} (Cod.{1})", description, code)); } } }
internal async Task <TransactionCreditCardEntityResult> CreateTransaction(Transaction transaction) { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(GetBaseAddressApi); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); client.DefaultRequestHeaders.TryAddWithoutValidation("MerchantId", _merchant.MerchantId); client.DefaultRequestHeaders.TryAddWithoutValidation("MerchantKey", _merchant.MerchantKey); client.DefaultRequestHeaders.TryAddWithoutValidation("RequestId", _merchant.RequestId); var json = JsonConvert.SerializeObject(transaction); var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync("/1/sales", content); TransactionCreditCardEntityResult result = new TransactionCreditCardEntityResult(); if (response.StatusCode == System.Net.HttpStatusCode.InternalServerError) { throw new Exceptions.CieloeCommerceApiException("Ocorreu um erro interno"); } if (response.IsSuccessStatusCode) { var responseContent = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <TransactionCreditCardEntityResult>(responseContent); } else { dynamic contentResult = JsonConvert.DeserializeObject( response.Content.ReadAsStringAsync().Result.ToString()); if (contentResult != null) { string code = Convert.ToString(contentResult[0].Code); string description = CieloApiUtils.GetErrorApi(Convert.ToString(contentResult[0].Code)) != "" ? CieloApiUtils.GetErrorApi(Convert.ToString(contentResult[0].Code)) : contentResult[0].Message; throw new Exceptions.CieloeCommerceApiException(string.Format("{0} (Cod.{1})", description, code)); } } return(result); } }