private static 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); }
private async Task <PayPalPaymentCreatedResponse> CreatePaypalPaymentAsync(HttpClient http, PayPalAccessToken accessToken, double total, string currency, ItemList itemList) { HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "v1/payments/payment"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.access_token); //foreach (var item in itemList.Items) //{ // Debug.WriteLine(item.Name + " " + item.Quantity); //} var payment = new Payment() { Intent = "sale", Transactions = new List <Transaction>() { new Transaction() { Amount = new Amount() { Total = total.ToString(), Currency = currency }, ItemList = itemList } }, RedirectUrls = new RedirectUrls() { CancelUrl = configuration["PayPal:cancelUrl"], ReturnUrl = configuration["PayPal:returnUrl"] }, Payer = new Payer() { PaymentMethod = "paypal" } }; 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); }