//This function can be used to perform authorization on the approved order. public async static Task <HttpResponse> AuthorizeOrder(string OrderId, bool debug = false) { var request = new OrdersAuthorizeRequest(OrderId); request.Prefer("return=representation"); request.RequestBody(new AuthorizeRequest()); var response = await PayPalClient.client().Execute(request); if (debug) { var result = response.Result <Order>(); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Authorization Id: {0}", result.PurchaseUnits[0].Payments.Authorizations[0].Id); Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Buyer:"); Console.WriteLine("\tEmail Address: {0}", result.Payer.Email); Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result)); } return(response); }
public async Task <IActionResult> CreateOrder(bool debug = false) { var request = new OrdersCreateRequest(); request.Prefer("return=representation"); request.RequestBody(BuildRequestBody()); //3. Call PayPal to set up a transaction var response = await PayPalClient.client().Execute(request); if (debug) { var output = response.Result <Order>(); Console.WriteLine("Status: {0}", output.Status); Console.WriteLine("Order Id: {0}", output.Id); Console.WriteLine("Intent: {0}", output.Intent); Console.WriteLine("Links:"); foreach (LinkDescription link in output.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = output.PurchaseUnits[0].Amount; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); } var result = response.Result <Order>(); var r = new PayPalOrder(); r.OrderId = result.Id; return(Ok(r)); }
/* * Method to capture order after creation. Valid approved order Id should be * passed an argument to this method. */ public async static Task <HttpResponse> CaptureOrder(string OrderId, bool debug = false) { var request = new OrdersCaptureRequest(OrderId); request.Prefer("return=representation"); request.RequestBody(new OrderActionRequest()); var response = await PayPalClient.client().Execute(request); if (debug) { var result = response.Result <Order>(); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.Intent); Console.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } Console.WriteLine("Capture Ids: "); foreach (PurchaseUnit purchaseUnit in result.PurchaseUnits) { foreach (Capture capture in purchaseUnit.Payments.Captures) { Console.WriteLine("\t {0}", capture.Id); } } AmountWithBreakdown amount = result.PurchaseUnits[0].Amount; Console.WriteLine("Buyer:"); Console.WriteLine("\tEmail Address: {0}\n\tName: {1}\n\tPhone Number: {2}{3}", result.Payer.EmailAddress, result.Payer.Name.FullName, result.Payer.Phone.CountryCode, result.Payer.Phone.NationalNumber); Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result)); } return(response); }
//Rename to Main1 => Main static void Main1(string [] args) { Console.WriteLine("Running Capture Intent Flow.."); var createOrderResponse = Samples.CaptureIntentExamples.CreateOrderSample.CreateOrder(true).Result; var createOrderResult = createOrderResponse.Result <Order>(); Console.WriteLine("Status: {0}", createOrderResult.Status); Console.WriteLine("Order Id: {0}", createOrderResult.Id); Console.WriteLine("Intent: {0}", createOrderResult.Intent); Console.WriteLine("Links:"); foreach (PayPalCheckoutSdk.Orders.LinkDescription link in createOrderResult.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = createOrderResult.PurchaseUnits[0].Amount; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); Console.WriteLine("Copy approve link and paste it in browser. Login with buyer account and follow the instructions.\nOnce approved hit enter...\n"); Console.Read(); Console.WriteLine("Capturing the payment..."); var captureOrderResponse = CaptureOrderSample.CaptureOrder(createOrderResult.Id, true).Result; var captureOrderResult = captureOrderResponse.Result <Order>(); var captureId = ""; Console.WriteLine("Status: {0}", captureOrderResult.Status); Console.WriteLine("Order Id: {0}", captureOrderResult.Id); Console.WriteLine("Intent: {0}", captureOrderResult.Intent); Console.WriteLine("Links:"); foreach (PayPalCheckoutSdk.Orders.LinkDescription link in captureOrderResult.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } foreach (PurchaseUnit purchaseUnit in captureOrderResult.PurchaseUnits) { foreach (PayPalCheckoutSdk.Orders.Capture capture in purchaseUnit.Payments.Captures) { captureId = capture.Id; } } AmountWithBreakdown captureAmount = captureOrderResult.PurchaseUnits[0].Amount; Console.WriteLine("Buyer:"); Console.WriteLine("\tEmail Address: {0}\n\tName: {1}\n\tPhone Number: {2}{3}", captureOrderResult.Payer.EmailAddress, captureOrderResult.Payer.Name.FullName, captureOrderResult.Payer.Phone.CountryCode, captureOrderResult.Payer.Phone.NationalNumber); Console.WriteLine("Refunding the Order...."); var refundOrderResponse = CapturesRefundSample.CapturesRefund(captureId, true).Result; var refundOrderResult = refundOrderResponse.Result <PayPalCheckoutSdk.Payments.Refund>(); Console.WriteLine("Status: {0}", refundOrderResult.Status); Console.WriteLine("Refund Id: {0}", refundOrderResult.Id); Console.WriteLine("Links:"); foreach (PayPalCheckoutSdk.Payments.LinkDescription link in refundOrderResult.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } }
/* * Method to create order * * @param debug true = print response data * @return HttpResponse<Order> response received from API * @throws IOException Exceptions from API if any */ public async static Task <HttpResponse> CreateOrder(bool debug = false) { var request = new OrdersCreateRequest(); request.Headers.Add("prefer", "return=representation"); request.RequestBody(BuildRequestBody()); var response = await PayPalClient.client().Execute(request); if (debug) { var result = response.Result <Order>(); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result)); } return(response); }
/* * This method cn be used to patch an order by passing the order id. */ public async static Task <HttpResponse> PatchOrder(string orderId, bool debug = false) { var request = new OrdersPatchRequest <Object>(orderId); request.RequestBody(BuildPatchRequest()); var response = await PayPalClient.client().Execute(request); if (debug) { var ordersGetRequest = new OrdersGetRequest(orderId); response = await PayPalClient.client().Execute(ordersGetRequest); var result = response.Result <Order>(); Console.WriteLine("Retrieved Order Status After Patch"); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.Intent); Console.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = result.PurchaseUnits[0].Amount; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result)); } return(response); }
public async Task <HttpResponse> AuthorizeOrder(string OrderId, bool debug = false) { var request = new OrdersAuthorizeRequest(OrderId); request.Prefer("return=representation"); request.RequestBody(new AuthorizeRequest()); //3. Call PayPal to authorization an order var response = await PayPalClient.Client(_configuration).Execute(request); //4. Save the authorization ID to your database. Implement logic to save the authorization to your database for future reference. if (debug) { var result = response.Result <Order>(); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Authorization Id: {0}", result.PurchaseUnits[0].Payments.Authorizations[0].Id); Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (PayPalCheckoutSdk.Orders.LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Buyer:"); Console.WriteLine("\tEmail Address: {0}", result.Payer.Email); Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result)); } return(response); }
//2. Set up your server to receive a call from the client /* * Method to create order * * @param debug true = print response data * @return HttpResponse<Order> response received from API * @throws IOException Exceptions from API if any */ public async Task <HttpResponse> CreateOrder(bool debug = false) { var request = new OrdersCreateRequest(); request.Prefer("return=representation"); request.RequestBody(BuildRequestBody()); //3. Call PayPal to set up a transaction var response = await PayPalClient.Client(_configuration).Execute(request); if (debug) { var result = response.Result <Order>(); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (PayPalCheckoutSdk.Orders.LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); } return(response); }
//This function can be used to perform authorization on the approved order. public async static Task <PayPalHttp.HttpResponse> AuthorizeOrder(string OrderId, bool debug = false) { var request = new OrdersAuthorizeRequest(OrderId); request.Prefer("return=representation"); request.RequestBody(new AuthorizeRequest()); var response = await PayPalClient.client().Execute(request); string s = ""; if (debug) { var result = response.Result <Order>(); s = s + "Status: " + result.Status + "\n"; s = s + "Order Id: " + result.Id + "\n"; s = s + "Authorization Id: " + result.PurchaseUnits[0].Payments.Authorizations[0].Id + "\n"; s = s + "Intent: " + result.CheckoutPaymentIntent + "\n"; s = s + "Links:"; foreach (LinkDescription link in result.Links) { s = s + "Rel: " + link.Rel + " | " + link.Href + " | " + link.Method + "\n"; } AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; s = s + "Buyer: "; s = s + "\tEmail Address: " + result.Payer.Email; // Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result)); } MessageBox.Show(s); return(response); }
public async Task <Invoice> CreateInvoice(Domain.Entities.Order order) { List <PurchaseUnitRequest> purchaseUnits = new(); purchaseUnits.Add(new() { CustomId = order.Id, Description = "Venta de Productos", AmountWithBreakdown = new AmountWithBreakdown() { CurrencyCode = order.Currency.ToString(), Value = Convert.ToInt32(order.TotalAmount).ToString() } }); ApplicationContext applicationContext = new() { ReturnUrl = Path.Combine(_paymentProviderOptions.ReturnUrl, order.Id), CancelUrl = _paymentProviderOptions.CancelUrl }; PaypalOrder payPalOrder = await _paypalService.CreatePaypalOrder(purchaseUnits, applicationContext); Uri uri = new(payPalOrder.Links.Single(l => l.Rel == "approve").Href); return(new() { Link = uri, Transaction = payPalOrder.Id, PaymentProvider = PaymentProvider.PayPal, OrderId = order.Id }); }
public async static Task <PayPalHttp.HttpResponse> CreatePaypalOrder(string OrderId, bool debug = false) { var request = new OrdersCaptureRequest(OrderId); request.Prefer("return=representation"); request.RequestBody(new OrderActionRequest()); //3. Call PayPal to capture an order var response = await PayPalClient.client().Execute(request); //4. Save the capture ID to your database. Implement logic to save capture to your database for future reference. if (debug) { var result = response.Result <Order>(); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } Console.WriteLine("Capture Ids: "); foreach (PurchaseUnit purchaseUnit in result.PurchaseUnits) { foreach (Capture capture in purchaseUnit.Payments.Captures) { Console.WriteLine("\t {0}", capture.Id); } } AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; } return(response); }
public override Task Execute(MessageData data) { var args = data.GetAs <Params>(); OrdersGetRequest request = new OrdersGetRequest(args.OrderId); if (string.IsNullOrEmpty(clientId)) { throw new CoflnetException("unavailable", "checkout via paypal has not yet been enabled, please contact an admin"); } var client = new PayPalHttpClient(new LiveEnvironment(clientId, clientSecret)); //3. Call PayPal to get the transaction PayPalHttp.HttpResponse response; try { response = client.Execute(request).Result; } catch (Exception e) { dev.Logger.Instance.Error(e, "payPalPayment"); throw new CoflnetException("payment_failed", "The provided orderId has not vaid payment asociated"); } //4. Save the transaction in your database. Implement logic to save transaction to your database for future reference. var result = response.Result <Order>(); Console.WriteLine(JSON.Stringify(result)); Console.WriteLine("Retrieved Order Status"); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); if (result.Status != "COMPLETED") { throw new CoflnetException("order_incomplete", "The order is not yet completed"); } if (UsedIds.Contains(args.OrderId)) { throw new CoflnetException("payment_timeout", "the provied order id was already used"); } if (DateTime.Parse(result.PurchaseUnits[0].Payments.Captures[0].UpdateTime) < DateTime.Now.Subtract(TimeSpan.FromHours(1))) { throw new CoflnetException("payment_timeout", "the provied order id is too old, please contact support for manual review"); } var user = data.User; var days = args.Days; var transactionId = result.Id; UserService.Instance.SavePurchase(user, days, transactionId); UsedIds.Add(args.OrderId); FileController.AppendLineAs("purchases", JSON.Stringify(result)); return(data.Ok()); }
//[Route("Payments/CaptureOrder")] public async Task <HttpResponse> CaptureOrder([FromBody] dynamic OrderId, bool debug = true) { var oi = (string)OrderId["OrderId"]; var request = new OrdersCaptureRequest(oi); request.Prefer("return=representation"); request.RequestBody(new OrderActionRequest()); //3. Call PayPal to capture an order var response = await PayPalClient.client().Execute(request); var result = response.Result <Order>(); response.Headers.Add("Payee Name", result.Payer.Name.GivenName + " " + result.Payer.Name.Surname); //4. Save the capture ID to your database. Implement logic to save capture to your database for future reference. if (debug) { Debug.WriteLine("Status: {0}", result.Status); Debug.WriteLine("Order Id: {0}", result.Id); Debug.WriteLine("Intent: {0}", result.Intent); Debug.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Debug.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } Debug.WriteLine("Capture Ids: "); foreach (PurchaseUnit purchaseUnit in result.PurchaseUnits) { foreach (Capture capture in purchaseUnit.Payments.Captures) { Debug.WriteLine("\t {0}", capture.Id); } } AmountWithBreakdown amount = result.PurchaseUnits[0].Amount; Debug.WriteLine("Buyer:"); Debug.WriteLine("\tEmail Address: {0}\n\tName: {1}\n\tPhone Number: {2}{3}", result.Payer.EmailAddress, result.Payer.Name.GivenName + " " + result.Payer.Name.Surname, result.Payer.Phone.CountryCode, result.Payer.Phone.NationalNumber); } Debug.WriteLine("************************************************************************************** "); //Id of last inserted record in payments table int last_payment_id = _context.Payments.Max(item => item.id); Debug.WriteLine("Buyer:", last_payment_id); Payments payments = await _context.Payments.SingleOrDefaultAsync(m => m.id == last_payment_id); Debug.WriteLine("************************************************************************************** "); payments.amount = result.PurchaseUnits[0].Amount.Value; payments.transactionId = result.Id; payments.payeeEmail = result.Payer.EmailAddress; if (ModelState.IsValid) { _context.Update(payments); await _context.SaveChangesAsync(); } return(response); }
public async Task <IActionResult> CaptureOrder(string orderId, bool debug = false) { string captureId = null; var request = new OrdersCaptureRequest(orderId); request.Prefer("return=representation"); request.RequestBody(new OrderActionRequest()); //3. Call PayPal to capture an order var response = await PayPalClient.client().Execute(request); //4. Save the capture ID to your database. Implement logic to save capture to your database for future reference. if (debug) { var output = response.Result <Order>(); Console.WriteLine("Status: {0}", output.Status); Console.WriteLine("Order Id: {0}", output.Id); Console.WriteLine("Intent: {0}", output.Intent); Console.WriteLine("Links:"); foreach (LinkDescription link in output.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } Console.WriteLine("Capture Ids: "); foreach (PurchaseUnit purchaseUnit in output.PurchaseUnits) { foreach (Capture capture in purchaseUnit.Payments.Captures) { captureId = capture.Id; Console.WriteLine("\t {0}", capture.Id); } } AmountWithBreakdown amount = output.PurchaseUnits[0].Amount; Console.WriteLine("Buyer:"); Console.WriteLine("\tEmail Address: {0}\n\tName: {1}\n\tPhone Number: {2}{3}", output.Payer.EmailAddress, output.Payer.Name.FullName, output.Payer.Phone.CountryCode, output.Payer.Phone.NationalNumber); } var result = response.Result <Order>(); var r = new PayPalCapture(); r.OrderId = orderId; foreach (PurchaseUnit purchaseUnit in result.PurchaseUnits) { foreach (Capture capture in purchaseUnit.Payments.Captures) { captureId = capture.Id; } } r.CaptureId = captureId; return(Ok(r)); }
public IActionResult Success(string token, string PayerID) { //AmountWithBreakdown amount = createOrderResult.PurchaseUnits[0].AmountWithBreakdown; var authorizeOrderResponse = AuthorizeOrderPayPal.AuthorizeOrder(token).Result; var authorizeOrderResult = authorizeOrderResponse.Result <Order>(); var authorizationId = authorizeOrderResult.PurchaseUnits[0].Payments.Authorizations[0].Id; AmountWithBreakdown authorixedAmount = authorizeOrderResult.PurchaseUnits[0].AmountWithBreakdown; var captureOrderResponse = CaptureOrderPayPal.CaptureOrder(authorizationId).Result; //captureOrderResult = captureOrderResponse.Result<Capture>(); var sendSms = new TwilioSms(); sendSms.Send(HttpContext.Session.GetObject <string>("phone")); HttpContext.Session.Remove("Cart"); return(View()); }
private async Task <Order> CaptureOrder(string OrderId, bool debug = false) { var request = new OrdersCaptureRequest(OrderId); request.Prefer("return=representation"); request.RequestBody(new OrderActionRequest()); var response = await _client.Execute(request); var result = response.Result <Order>(); if (debug) { Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } Console.WriteLine("Capture Ids: "); foreach (PurchaseUnit purchaseUnit in result.PurchaseUnits) { foreach (Capture capture in purchaseUnit.Payments.Captures) { Console.WriteLine("\t {0}", capture.Id); } } AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Buyer:"); Console.WriteLine("\tEmail Address: {0}\n\tName: {1} {2}\n", result.Payer.Email, result.Payer.Name.GivenName, result.Payer.Name.Surname); } return(result); }
public async Task <IActionResult> Paypal(string productId) { //var response = await _paypalService.GenerateRequest(packageId); //var result = response.Result<Order>(); var userId = User.GetUserId(); var result = await _paypalService.OrderProduct(productId, userId); if (result != null) { Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.Intent); Console.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = result.PurchaseUnits[0].Amount; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); } return(Json(result)); }
public async Task <HttpResponse> CaptureOrder(string OrderId, bool debug = false) { var request = new OrdersCaptureRequest(OrderId); request.Prefer("return=representation"); request.RequestBody(new OrderActionRequest()); //3. Call PayPal to capture an order var response = await PayPalClient.Client(_configuration).Execute(request); //4. Save the capture ID to your database. Implement logic to save capture to your database for future reference. if (debug) { var result = response.Result <Order>(); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (PayPalCheckoutSdk.Orders.LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } Console.WriteLine("Capture Ids: "); foreach (PurchaseUnit purchaseUnit in result.PurchaseUnits) { foreach (PayPalCheckoutSdk.Orders.Capture capture in purchaseUnit.Payments.Captures) { Console.WriteLine("\t {0}", capture.Id); } } AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Buyer:"); Console.WriteLine("\tEmail Address: {0}\n\tName: {1}\n\tPhone Number: {2}{3}", result.Payer.Email, result.Payer.Name.FullName, result.Payer.PhoneWithType.PhoneNumber.CountryCallingCode, result.Payer.PhoneWithType.PhoneNumber.NationalNumber); } return(response); }
public async Task <String> GetOrder(string id, bool debug = false) { OrdersGetRequest request = new OrdersGetRequest(id); //3. Call PayPal to get the transaction var response = await PayPalClient.client().Execute(request); //4. Save the transaction in your database. Implement logic to save transaction to your database for future reference. var result = response.Result <Order>(); Console.WriteLine("Retrieved Order Status"); Console.WriteLine("Status: {0}", result.Status); Console.WriteLine("Order Id: {0}", result.Id); Console.WriteLine("Intent: {0}", result.Intent); Console.WriteLine("Links:"); foreach (LinkDescription link in result.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = result.PurchaseUnits[0].Amount; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); return(PayPalClient.ObjectToJSONString(response.Result <Order>())); }
//Rename to Main1 => Main static void Main(string [] args) { Console.WriteLine("Running Authorize Intent Flow.."); var createOrderResponse = Samples.AuthorizeIntentExamples.CreateOrderSample.CreateOrder().Result; var createOrderResult = createOrderResponse.Result <Order>(); Console.WriteLine("Status: {0}", createOrderResult.Status); Console.WriteLine("Order Id: {0}", createOrderResult.Id); Console.WriteLine("Intent: {0}", createOrderResult.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (var link in createOrderResult.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown amount = createOrderResult.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value); Console.WriteLine("Copy approve link and paste it in browser. Login with buyer account and follow the instructions.\nOnce approved hit enter...\n"); Console.Read(); Console.WriteLine("Authorizing the Order...."); var authorizeOrderResponse = AuthorizeOrderSample.AuthorizeOrder(createOrderResult.Id).Result; var authorizeOrderResult = authorizeOrderResponse.Result <Order>(); Console.WriteLine("Status: {0}", authorizeOrderResult.Status); var authorizationId = authorizeOrderResult.PurchaseUnits[0].Payments.Authorizations[0].Id; Console.WriteLine("Order Id: {0}", authorizeOrderResult.Id); Console.WriteLine("Authorization Id: {0}", authorizeOrderResult.PurchaseUnits[0].Payments.Authorizations[0].Id); Console.WriteLine("Intent: {0}", authorizeOrderResult.CheckoutPaymentIntent); Console.WriteLine("Links:"); foreach (var link in authorizeOrderResult.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } AmountWithBreakdown authorixedAmount = authorizeOrderResult.PurchaseUnits[0].AmountWithBreakdown; Console.WriteLine("Buyer:"); Console.WriteLine("\tEmail Address: {0}", authorizeOrderResult.Payer.Email); Console.WriteLine("Capturing the payment..."); var captureOrderResponse = CaptureOrderSample.CaptureOrder(authorizationId).Result; var captureOrderResult = captureOrderResponse.Result <PayPalCheckoutSdk.Payments.Capture>(); Console.WriteLine("Status: {0}", captureOrderResult.Status); Console.WriteLine("Capture Id: {0}", captureOrderResult.Id); Console.WriteLine("Links:"); foreach (var link in captureOrderResult.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } Console.WriteLine("Refunding the Order...."); var refundOrderResponse = CapturesRefundSample.CapturesRefund(captureOrderResult.Id).Result; var refundOrderResult = refundOrderResponse.Result <PayPalCheckoutSdk.Payments.Refund>(); Console.WriteLine("Status: {0}", refundOrderResult.Status); Console.WriteLine("Refund Id: {0}", refundOrderResult.Id); Console.WriteLine("Links:"); foreach (var link in refundOrderResult.Links) { Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method); } }