예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string[] parts = Request.Url.AbsolutePath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
            if (Request["oid"] != null)
            {
                orderId = Convert.ToInt32(Request["oid"].ToString());
            }
            else
            {
                orderId = CartContext.OrderId;
            }
            Order orderData = CSResolve.Resolve <IOrderService>().GetOrderDetails(orderId, true);

            if (orderData.OrderStatusId == 2)
            {
                // this means that  customer clicked back, so should be directed to receipt page.
                Response.Redirect("receipt.aspx");
            }
            if (!IsPostBack)
            {
                CSWebBase.SiteBasePage.TempOrderFix(CartContext, orderData.OrderStatusId);

                //new CSWeb.FulfillmentHouse.DataPakTax().CalculateTax(orderId);

                Dictionary <string, AttributeValue> orderAttributes = new Dictionary <string, AttributeValue>();

                if (orderData.CreditInfo.CreditCardNumber.Equals("4444333322221111"))
                {
                    CSResolve.Resolve <IOrderService>().UpdateOrderAttributes(orderData.OrderId, orderAttributes, 7);

                    Response.Redirect("receipt.aspx");
                }
                else if (orderData.CreditInfo.CreditCardNumber.Equals("4111111111111111") && !orderData.CreditInfo.CreditCardCSC.Equals("999"))
                {
                    CSResolve.Resolve <IOrderService>().UpdateOrderAttributes(orderData.OrderId, orderAttributes, 7);

                    Response.Redirect(string.Format("carddecline.aspx?returnUrl={0}", string.Concat("/", string.Join("/", parts, 0, parts.Length - 1), "/receipt.aspx")), true);
                }

                if (orderData.CreditInfo.CreditCardNumber.Equals("1111222233334444"))
                {
                    if (orderData.OrderStatusId == 4)
                    {
                    }
                    else
                    {
                        string message = OrderHelper.FinalizePayPalTransaction((ClientCartContext)Session["ClientOrderData"]);

                        if (!string.IsNullOrEmpty(message))
                        {
                            lblMessage.Text = message;
                        }
                        else
                        {
                            lblMessage.Text = string.Empty;
                            SiteBasePage.ResetPayPal();
                            Response.Redirect("receipt.aspx", true);
                        }
                    }
                }

                bool authSuccess = false;

                // Check if payment gateway service is enabled or not.
                if (CSFactory.GetCacheSitePref().PaymentGatewayService)
                {
                    try
                    {
                        authSuccess = orderData.OrderStatusId == 4 ||
                                      orderData.OrderStatusId == 5 || // fulfillment failure (fulfillment was attempted after payment success), so don't charge again.
                                      OrderHelper.AuthorizeOrder(orderId);
                    }
                    catch (Exception ex)
                    {
                        CSCore.CSLogger.Instance.LogException("AuthorizeOrder - auth error - orderid: " + Convert.ToString(orderId), ex);

                        throw;
                    }
                }
                else
                {
                    authSuccess = true;
                }

                if (authSuccess)
                {
                    // Check if fulfillment gateway service is enabled or not.
                    if (CSFactory.GetCacheSitePref().FulfillmentHouseService)
                    {
                        try
                        {
                            new CSWeb.FulfillmentHouse.Moulton().PostOrder(orderId);
                        }
                        catch (Exception ex)
                        {
                            CSCore.CSLogger.Instance.LogException("AuthorizeOrder - fulfillment post error - orderid: " + Convert.ToString(orderId), ex);

                            throw;
                        }

                        if (Request.QueryString != null)
                        {
                            Response.Redirect("receipt.aspx?" + Request.QueryString);
                        }
                        else
                        {
                            Response.Redirect("receipt.aspx");
                        }
                    }
                }
                else
                {
                    Response.Redirect(string.Format("carddecline.aspx?returnUrl={0}", string.Concat("/", string.Join("/", parts, 0, parts.Length - 1), "/receipt.aspx")), true);
                }
            }
            Response.Redirect("receipt.aspx");
        }
예제 #2
0
        public static void ProcessOrder(int orderId)
        {
            Order orderData = CSResolve.Resolve <IOrderService>().GetOrderDetails(orderId, true);

            if (orderData.OrderStatusId == 2)
            {
                return;
            }

            //Calculate and save tax
            new CSWeb.FulfillmentHouse.DataPakTax().PostOrderToDataPak(orderId);

            string[] testCreditCards;

            testCreditCards = ResourceHelper.GetResoureValue("TestCreditCard").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);;
            foreach (string word in testCreditCards)
            {
                if (orderData.CreditInfo.CreditCardNumber.Equals(word))
                {
                    CSResolve.Resolve <IOrderService>().UpdateOrderStatus(orderData.OrderId, 7);
                    UserSessions.InsertSessionEntry(HttpContext.Current, false, 0, 0, orderId);

                    return;
                }
            }
            bool authSuccess = false;

            // Check if payment gateway service is enabled or not.
            if (CSFactory.GetCacheSitePref().PaymentGatewayService)
            {
                try
                {
                    authSuccess = orderData.OrderStatusId == 4 ||
                                  orderData.OrderStatusId == 5 || // fulfillment failure (fulfillment was attempted after payment success), so don't charge again.
                                  OrderHelper.AuthorizeOrder(orderId);
                    if (!authSuccess)
                    {
                        OrderHelper.SendOrderDeclinedEmail(orderId);
                    }
                }
                catch (Exception ex)
                {
                    CSCore.CSLogger.Instance.LogException("AuthorizeOrder - auth error - orderid: " + Convert.ToString(orderId), ex);
                }
            }
            else
            {
                authSuccess = true;
            }

            if (authSuccess)
            {
                // Check if fulfillment gateway service is enabled or not.
                if (CSFactory.GetCacheSitePref().FulfillmentHouseService)
                {
                    try
                    {
                        new CSWeb.FulfillmentHouse.DataPak().PostOrderToDataPak(orderId);
                    }
                    catch (Exception ex)
                    {
                        CSCore.CSLogger.Instance.LogException("Fullfilment Error - orderid: " + Convert.ToString(orderId), ex);
                        OrderHelper.SendEmailToAdmins(orderId);
                    }
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            string[] parts = Request.Url.AbsolutePath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
            if (Session["oid"] != null)
            {
                orderId = Convert.ToInt32(Session["oid"].ToString());
            }
            else if (CartContext.OrderId > 0)
            {
                orderId = CartContext.OrderId;
            }
            else
            {
                Response.Redirect("index.aspx");
            }
            Order orderData = CSResolve.Resolve <IOrderService>().GetOrderDetails(orderId, true);


            if (orderData.OrderStatusId == 2)
            {
                // this means that  customer clicked back, so should be directed to receipt page.
                Response.Redirect("receipt.aspx");
            }

            if (Session["oid"] == null && OrderHelper.IsCustomerOrderFlowCompleted(CartContext.OrderId))
            {
                Response.Redirect("receipt.aspx");
            }

            if (!IsPostBack)
            {
                //Calculate and save tax
                new CSWeb.FulfillmentHouse.DataPakTax().PostOrderToDataPak(orderId);

                string[] testCreditCards;

                testCreditCards = ResourceHelper.GetResoureValue("TestCreditCard").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);;

                foreach (string word in testCreditCards)
                {
                    if (orderData.CreditInfo.CreditCardNumber.Equals(word))
                    {
                        CSResolve.Resolve <IOrderService>().UpdateOrderStatus(orderData.OrderId, 7);
                        // This will avoid order from getting posted to OMX for test orders
                        Session["OrderStatus"] = "Receipt";
                        Response.Redirect("receipt.aspx");
                    }
                }


                bool authSuccess = false;
                // Check if payment gateway service is enabled or not.
                if (CSFactory.GetCacheSitePref().PaymentGatewayService)
                {
                    try
                    {
                        authSuccess = orderData.OrderStatusId == 4 ||
                                      orderData.OrderStatusId == 5 || // fulfillment failure (fulfillment was attempted after payment success), so don't charge again.
                                      OrderHelper.AuthorizeOrder(orderId);
                        ////if (!authSuccess)
                        ////    OrderHelper.SendOrderDeclinedEmail(orderId);
                    }
                    catch (Exception ex)
                    {
                        CSCore.CSLogger.Instance.LogException("AuthorizeOrder - auth error - orderid: " + Convert.ToString(orderId), ex);

                        throw;
                    }
                }
                else
                {
                    authSuccess = true;
                }

                if (authSuccess)
                {
                    // Check if fulfillment gateway service is enabled or not.
                    if (CSFactory.GetCacheSitePref().FulfillmentHouseService)
                    {
                        try
                        {
                            new CSWeb.FulfillmentHouse.DataPak().PostOrderToDataPak(orderId);
                        }
                        catch (Exception ex)
                        {
                            CSCore.CSLogger.Instance.LogException("AuthorizeOrder - fulfillment post error - orderid: " + Convert.ToString(orderId), ex);
                        }
                        Session["OrderStatus"] = "Receipt";

                        if (Request.QueryString != null)
                        {
                            Response.Redirect("receipt.aspx?" + Request.QueryString);
                        }
                        else
                        {
                            Response.Redirect("receipt.aspx");
                        }
                    }
                }
                else
                {
                    Response.Redirect(string.Format("carddecline.aspx?returnUrl={0}", string.Concat("/", string.Join("/", parts, 0, parts.Length - 1), "/receipt.aspx")), true);
                }
            }
            Session["OrderStatus"] = "Receipt";

            Response.Redirect("receipt.aspx");
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request.Params["PId"] != null)
                {
                    skuId = Convert.ToInt32(Request.Params["PId"]);
                }

                if (Request.Params["CId"] != null)
                {
                    cId = Convert.ToInt32(Request.Params["CId"]);
                }

                if (Request.Params["DId"] != null)
                {
                    dId = Convert.ToInt32(Request.Params["DId"]);
                }

                if (Request.Params["QId"] != null)
                {
                    qId = Convert.ToInt32(Request.Params["QId"]);
                }

                if (skuId > 0)
                {
                    if (cId == (int)ShoppingCartType.SingleCheckout)
                    {
                        clientData = (ClientCartContext)Session["ClientOrderData"];
                        cartObject = new CSBusiness.ShoppingManagement.Cart();
                        cartObject.AddItem(skuId, qId, true, false);
                        if (dId > 0)
                        {
                            bool settingVal = Convert.ToBoolean(ConfigHelper.ReadAppSetting("DisCountCardDisplay", "false"));
                            cartObject.AddItem(dId, qId, settingVal, false);
                        }

                        cartObject.ShippingAddress = clientData.CustomerInfo.BillingAddress;
                        cartObject.Compute();
                        cartObject.ShowQuantity = false;
                        clientData.CartInfo     = cartObject;

                        //Sri Comment: OverrideSetting for Database configuration
                        if (CSFactory.OrderProcessCheck() == (int)OrderProcessTypeEnum.InstantOrderProcess)
                        {
                            int orderId = CSResolve.Resolve <IOrderService>().SaveOrder(clientData);
                            if (orderId > 0)
                            {
                                //remove Customer Data and Payment Data in session object
                                clientData.ResetData();
                                clientData.OrderId         = orderId;
                                Session["ClientOrderData"] = clientData;
                            }
                            if (OrderHelper.AuthorizeOrder(orderId) == true)
                            {
                                Response.Redirect("CheckoutThankYou.aspx?oId=" + orderId);
                            }
                            else
                            {
                                Response.Redirect("CardDecline.aspx?failedAuth=1&orderID=" + orderId);
                            }

                            Response.Redirect("PostSale.aspx");
                        }
                    }
                    else if (cId == (int)ShoppingCartType.ShippingCreditCheckout)
                    {
                        clientData = (ClientCartContext)Session["ClientOrderData"];
                        cartObject = new CSBusiness.ShoppingManagement.Cart();
                        cartObject.AddItem(skuId, qId, true, false);
                        if (dId > 0)
                        {
                            bool settingVal = Convert.ToBoolean(ConfigHelper.ReadAppSetting("DisCountCardDisplay", "false"));
                            cartObject.AddItem(dId, qId, settingVal, false);
                        }
                        cartObject.ShippingAddress = clientData.CustomerInfo.BillingAddress;
                        cartObject.Compute();
                        cartObject.ShowQuantity    = false;
                        clientData.CartInfo        = cartObject;
                        Session["ClientOrderData"] = clientData;
                        Response.Redirect("cart.aspx");
                    }

                    else
                    {
                        //we may set this object in index page to capture request information
                        if (Session["ClientOrderData"] == null)
                        {
                            clientData          = new ClientCartContext();
                            clientData.CartInfo = new CSBusiness.ShoppingManagement.Cart();
                        }
                        else
                        {
                            clientData = (ClientCartContext)Session["ClientOrderData"];
                            if (clientData.CartInfo == null)
                            {
                                clientData.CartInfo = new CSBusiness.ShoppingManagement.Cart();
                            }
                        }

                        clientData.CartInfo.AddItem(skuId, qId, true, false);
                        if (dId > 0)
                        {
                            bool settingVal = Convert.ToBoolean(ConfigHelper.ReadAppSetting("DisCountCardDisplay", "false"));
                            cartObject.AddItem(dId, qId, settingVal, false);
                        }
                        clientData.CartInfo.Compute();
                        clientData.CartInfo.ShowQuantity = false;

                        Session["ClientOrderData"] = clientData;
                        Response.Redirect("cart.aspx");
                    }
                }
            }
        }