public async Task <PaymentRespObj> makePayment(PaymentObj payment) { var url = "payments"; var jsonContent = JsonConvert.SerializeObject(payment); var buffer = Encoding.UTF8.GetBytes(jsonContent); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); PaymentRespObj responseObj = new PaymentRespObj(); var flutterWaveClient = _httpClientFactory.CreateClient("FLUTTERWAVE"); var keys = await _serverRequest.GetFlutterWaveKeys(); flutterWaveClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + keys.keys.secret_keys); return(await _retryPolicy.ExecuteAsync(async() => { try { result = await flutterWaveClient.PostAsync(url, byteContent); if (!result.IsSuccessStatusCode) { var data1 = await result.Content.ReadAsStringAsync(); responseObj = JsonConvert.DeserializeObject <PaymentRespObj>(data1); return new PaymentRespObj { message = responseObj.message }; } var data = await result.Content.ReadAsStringAsync(); responseObj = JsonConvert.DeserializeObject <PaymentRespObj>(data); } catch (Exception ex) { throw ex; } if (responseObj == null) { return new PaymentRespObj { message = "Not Successful" }; } if (responseObj.status == "success") { return new PaymentRespObj { status = responseObj.status, data = responseObj.data, message = responseObj.message }; } return new PaymentRespObj { message = "Not Successful" }; })); }
public async Task <PaymentIdRes> CreatePayment(string token, string getAmount) { //Add headers client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); //Payment object PaymentObj pObj = new PaymentObj { intent = "sale", payer = new PaymentObj.Payer { payment_method = "paypal" }, redirect_urls = new PaymentObj.Redirect_Urls { return_url = "/Client/Success", cancel_url = "/Client/Cancel" }, transactions = new PaymentObj.Transaction[] { new PaymentObj.Transaction { amount = new PaymentObj.Amount { total = getAmount, currency = "EUR" } } } }; DataContractJsonSerializer serializePaymentObj = new DataContractJsonSerializer(typeof(PaymentObj)); //Create a stream to serialize the object to. MemoryStream ms = new MemoryStream(); serializePaymentObj.WriteObject(ms, pObj); byte[] json = ms.ToArray(); ms.Close(); string bodyToSend = Encoding.UTF8.GetString(json, 0, json.Length); HttpContent _body = new StringContent(bodyToSend, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync("https://api.sandbox.paypal.com/v1/payments/payment", _body); //Response var serializer = new DataContractJsonSerializer(typeof(PaymentIdRes)); response.EnsureSuccessStatusCode(); var responseBody = await response.Content.ReadAsStreamAsync(); var payId = serializer.ReadObject(responseBody) as PaymentIdRes; return(payId); }