コード例 #1
0
        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 }));
            }
        }
コード例 #2
0
        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 }));
            }
        }