public ActionResult Venmo(string id) { if (id == null) { return(RedirectToAction("/Home/Login")); } Models.Order order = db.Orders.Where(i => i.ID == id).First(); if (order == null) { return(HttpNotFound()); } Models.OrderBilling billing = db.Billing.FirstOrDefault(i => i.orderId == order.orderId); if (billing == null) { return(HttpNotFound()); } try { // Save checkout on the base db.CreatePayment(order.orderId, "", "VENMO"); return(Redirect(WebConfigurationManager.AppSettings["VENMO_RedirectUrl"])); } catch (Exception e) { return(RedirectToAction("Error", new { error = e.Message })); } }
public ActionResult SquarePayment(string id) { if (id == null) { return(RedirectToAction("/Home/Login")); } Models.Order order = db.Orders.Where(i => i.ID == id).First(); if (order == null) { return(HttpNotFound()); } Models.OrderBilling billing = db.Billing.FirstOrDefault(i => i.orderId == order.orderId); if (billing == null) { return(HttpNotFound()); } CheckoutSquare square = new CheckoutSquare(); ICheckoutApi checkoutApi = square.client.CheckoutApi; try { // create line items for the order // This example assumes the order information is retrieved and hard coded // You can find different ways to retrieve order information and fill in the following lineItems object. List <OrderLineItem> lineItems = new List <OrderLineItem>(); Money firstLineItemBasePriceMoney = new Money.Builder() .Amount(order.billing.totalChargesSquareAPI) .Currency("USD") .Build(); OrderLineItem firstLineItem = new OrderLineItem.Builder("1") .Name(order.service) .BasePriceMoney(firstLineItemBasePriceMoney) .Build(); lineItems.Add(firstLineItem); // create Order object with line items Square.Models.Order squareOrder = new Square.Models.Order.Builder(square.locationId) .LineItems(lineItems) .Build(); // create order request with order CreateOrderRequest orderRequest = new CreateOrderRequest.Builder() .Order(squareOrder) .IdempotencyKey(order.contractNumber) .Build(); // create checkout request with the previously created order CreateCheckoutRequest createCheckoutRequest = new CreateCheckoutRequest.Builder( Guid.NewGuid().ToString(), orderRequest) .RedirectUrl(WebConfigurationManager.AppSettings["SQUARE_RedirectUrl"] + id) .MerchantSupportEmail("*****@*****.**") .PrePopulateBuyerEmail(order.email) .Build(); // create checkout response, and redirect to checkout page if successful CreateCheckoutResponse response = checkoutApi.CreateCheckout(square.locationId, createCheckoutRequest); // Save checkout on the base db.CreatePayment(order.orderId, response.Checkout.Id, "SQUARE API"); return(Redirect(response.Checkout.CheckoutPageUrl)); } catch (ApiException e) { return(RedirectToAction("Error", new { error = e.Message })); } }