Пример #1
0
        public AuthorizedBaseService(SquareConfig config, SquareMerchantCredentials credentials) : base(config)
        {
            Condition.Requires(credentials, "credentials").IsNotNull();

            this.Credentials      = credentials;
            this.ApiConfiguration = new Square.Connect.Client.Configuration()
            {
                AccessToken = this.Credentials.AccessToken
            };
        }
        public ActionResult ChargeNonce()
        {
            string accessToken = "sandbox-sq0atb-D4TFGj4GmAew2U1yDuxe3Q";

            // Set the location ID
            string locId = "CBASECShk_d_mWkyYVT6bgiV52AgAQ";


            //Create configuration object for apiClient
            Square.Connect.Client.Configuration apiConfiguration = new Square.Connect.Client.Configuration();
            apiConfiguration.AccessToken = accessToken;

            //Create instance of api client
            Square.Connect.Client.ApiClient apiClient = new Square.Connect.Client.ApiClient(apiConfiguration);


            //Create instance of Orders api
            OrdersApi orderApi = new OrdersApi(apiConfiguration);

            //Create instance of Orders api
            CheckoutApi checkoutApi = new CheckoutApi(apiConfiguration);


            //Grab items from session and put them in a list
            List <Item> cartSession = (List <Item>)Session["cart"] != null ? (List <Item>)Session["cart"] : new List <Item>();


            //Create Line Item Request instance
            List <CreateOrderRequestLineItem> lineItems = new List <CreateOrderRequestLineItem>();

            //Create line item for each item stored in the cart session
            foreach (var item in cartSession)
            {
                int lineItemPrice = (int)(item.Product.ProductPrice * 100);

                Money price = new Money(lineItemPrice, Money.CurrencyEnum.USD);
                CreateOrderRequestLineItem lineItem = new CreateOrderRequestLineItem(item.Product.ProductTitle, item.Quantity.ToString(), price);

                lineItems.Add(lineItem);
            }

            string idempotencyKey = Guid.NewGuid().ToString();

            //Create new order request instance with cart items
            CreateOrderRequest orderRequest = new CreateOrderRequest(idempotencyKey, null, lineItems);

            //Get return URL
            //var urlBuilder =
            //new System.UriBuilder(Request.Url.AbsoluteUri)
            //{
            //    Path = Url.Action("PaymentConfirmation", "Products"),
            //    Query = null,
            //};

            //Uri uri = urlBuilder.Uri;
            //string url = urlBuilder.ToString();
            //UNCOMMENT AND CHANGE LAST NULL PARAMETER TO url


            CreateCheckoutRequest checkoutRequest = new CreateCheckoutRequest(idempotencyKey, orderRequest, true, null, null, null);

            try
            {
                var checkoutResponse = checkoutApi.CreateCheckout(locId, checkoutRequest);

                return(Redirect(checkoutResponse.Checkout.CheckoutPageUrl));
            }
            catch (Exception)
            {
                throw;
            }
        }