private async Task <PayPalPaymentCreatedResponse> CreatePaypalPaymentAsync(HttpClient http, PayPalAccessToken accessToken, decimal total, string currency) { HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "/v1/payments/payment"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.access_token); var payment = JObject.FromObject(new { intent = "sale", redirect_urls = new { returl_url = configuration["PayPal:returnUrl"], cancel_url = configuration["PayPal:cancelUrl"] }, payer = new { payment_method = "paypal" }, transactions = JArray.FromObject(new[] { new { amount = new { total = total, currency = currency } } }) }); request.Content = new StringContent(JsonConvert.SerializeObject(payment), Encoding.UTF8, "application/json"); HttpResponseMessage response = await http.SendAsync(request); string content = await response.Content.ReadAsStringAsync(); PayPalPaymentCreatedResponse paypalPaymentCreated = JsonConvert.DeserializeObject <PayPalPaymentCreatedResponse>(content); return(paypalPaymentCreated); }
private async Task <PayPalPaymentExecutedResponse> ExecutePaypalPaymentAsync(HttpClient http, PayPalAccessToken accessToken, string paymentId, string payerId) { HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, $"/v1/payments/payment/{paymentId}/execute"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.access_token); var payment = JObject.FromObject(new { payer_id = payerId }); request.Content = new StringContent(JsonConvert.SerializeObject(payment), Encoding.UTF8, "application/json"); HttpResponseMessage response = await http.SendAsync(request); string content = await response.Content.ReadAsStringAsync(); PayPalPaymentExecutedResponse executedPayment = JsonConvert.DeserializeObject <PayPalPaymentExecutedResponse>(content); return(executedPayment); }