Beispiel #1
0
        public void PostOrderToDataPak(int orderId)
        {
            string req = new DataPak().GetRequest(orderId, false, false); // Posting order to OMX
            string res = CommonHelper.HttpPost(config.Attributes["transactionUrl"].Value, req);
            Dictionary <string, AttributeValue> orderAttributes = new Dictionary <string, AttributeValue>();

            orderAttributes.Add("Request", new CSBusiness.Attributes.AttributeValue(CSCore.Utils.CommonHelper.Encrypt(req)));
            orderAttributes.Add("Response", new CSBusiness.Attributes.AttributeValue(res));

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(res);
            XmlNode xnResult = doc.SelectSingleNode("/DatapakServices/Order/Result/Code");



            if (xnResult.InnerText.ToLower().Equals("001"))
            {
                //CSResolve.Resolve<IOrderService>().SaveOrderInfo(orderId, 2, req.ToLower().Replace("utf-8", "utf-16"), res.ToLower().Replace("utf-8", "utf-16"));
                CSResolve.Resolve <IOrderService>().UpdateOrderAttributes(orderId, orderAttributes, 2);
                OrderHelper.SendOrderCompletedEmail(orderId);
            }
            else
            {
                //CSResolve.Resolve<IOrderService>().SaveOrderInfo(orderId, 5, req.ToLower().Replace("utf-8", "utf-16"), res.ToLower().Replace("utf-8", "utf-16"));
                CSResolve.Resolve <IOrderService>().UpdateOrderAttributes(orderId, orderAttributes, 5);
                //sending email to admins
                OrderHelper.SendEmailToAdmins(orderId);
            }
            UserSessions.InsertSessionEntry(HttpContext.Current, true, 0, 0, orderId);
        }
Beispiel #2
0
        protected override void Page_Load(object sender, EventArgs e)
        {
            base.Page_Load(sender, e);
            if (!Page.IsPostBack)
            {
                if (Session["PId"] != null)
                {
                    skuId = Convert.ToInt32(Session["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 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;

                        if (CSFactory.OrderProcessCheck() == (int)OrderProcessTypeEnum.InstantOrderProcess)
                        {
                            int orderId = CSResolve.Resolve <IOrderService>().SaveOrder(clientData);
                            UserSessions.InsertSessionEntry(Context, true, clientData.CartInfo.Total, clientData.CustomerInfo.CustomerId, orderId);

                            clientData.OrderId = orderId;
                            clientData.ResetData();
                            Session["ClientOrderData"] = clientData;
                        }

                        Response.Redirect("PostSale.aspx");
                    }
                    else if (cId == (int)ShoppingCartType.ShippingCreditCheckout)
                    {
                        clientData = (ClientCartContext)Session["ClientOrderData"];
                        cartObject = new 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 Cart();
                        }
                        else
                        {
                            clientData = (ClientCartContext)Session["ClientOrderData"];
                            if (clientData.CartInfo == null)
                            {
                                clientData.CartInfo = new 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");
                    }
                }
            }
        }
        public void SaveData()
        {
            ClientCartContext clientData = ClientOrderData;

            if (Page.IsValid)
            {
                Customer CustData = new Customer();

                //Set Customer Information
                Address shippingAddress = new Address();
                shippingAddress.FirstName       = CommonHelper.fixquotesAccents(txtShippingFirstName.Text);
                shippingAddress.LastName        = CommonHelper.fixquotesAccents(txtShippingLastName.Text);
                shippingAddress.Address1        = CommonHelper.fixquotesAccents(txtShippingAddress1.Text);
                shippingAddress.Address2        = CommonHelper.fixquotesAccents(txtShippingAddress2.Text);
                shippingAddress.City            = CommonHelper.fixquotesAccents(txtShippingCity.Text);
                shippingAddress.StateProvinceId = Convert.ToInt32(ddlShippingState.SelectedValue);
                shippingAddress.CountryId       = CountryManager.CountryId("United States");
                shippingAddress.ZipPostalCode   = CommonHelper.fixquotesAccents(txtShippingZipCode.Text);

                CustData.ShippingAddress = shippingAddress;



                CustData.FirstName   = CommonHelper.fixquotesAccents(txtShippingFirstName.Text);
                CustData.LastName    = CommonHelper.fixquotesAccents(txtShippingFirstName.Text);
                CustData.PhoneNumber = txtPhoneNumber1.Text;// +txtPhoneNumber2.Text + txtPhoneNumber3.Text;
                CustData.Email       = CommonHelper.fixquotesAccents(txtEmail.Text);
                CustData.Username    = CommonHelper.fixquotesAccents(txtEmail.Text);

                //CustData.ShippingAddress = billingAddress;

                if (!pnlShippingAddress.Visible)
                {
                    CustData.BillingAddress = shippingAddress;
                }
                else
                {
                    Address billingAddress = new Address();
                    billingAddress.FirstName       = CommonHelper.fixquotesAccents(txtFirstName.Text);
                    billingAddress.LastName        = CommonHelper.fixquotesAccents(txtLastName.Text);
                    billingAddress.Address1        = CommonHelper.fixquotesAccents(txtAddress1.Text);
                    billingAddress.Address2        = CommonHelper.fixquotesAccents(txtAddress2.Text);
                    billingAddress.City            = CommonHelper.fixquotesAccents(txtCity.Text);
                    billingAddress.StateProvinceId = Convert.ToInt32(ddlState.SelectedValue);
                    billingAddress.CountryId       = CountryManager.CountryId("United States");
                    billingAddress.ZipPostalCode   = CommonHelper.fixquotesAccents(txtZipCode.Text);
                    CustData.BillingAddress        = billingAddress;
                }



                PaymentInformation paymentDataInfo = new PaymentInformation();
                string             CardNumber      = ucTokenex.ReceivedToken;
                paymentDataInfo.CreditCardNumber  = CommonHelper.Encrypt(CardNumber);
                paymentDataInfo.CreditCardType    = Convert.ToInt32(ddlCCType.SelectedValue);
                paymentDataInfo.CreditCardName    = ddlCCType.SelectedItem.Text;
                paymentDataInfo.CreditCardExpired = new DateTime(int.Parse(ddlExpYear.SelectedValue), int.Parse(ddlExpMonth.SelectedValue), 1);
                paymentDataInfo.CreditCardCSC     = CommonHelper.Encrypt(txtCvv.Text);

                clientData.PaymentInfo = paymentDataInfo;

                // add rush shipping level to cart object
                if (!string.IsNullOrEmpty(ddlAdditionShippingCharge.SelectedValue))
                {
                    clientData.CartInfo.ShippingChargeKey = ddlAdditionShippingCharge.SelectedValue;
                }

                //Save opt-in value in order
                clientData.OrderAttributeValues.AddOrUpdateAttributeValue("SpecialOffersOptIn", new CSBusiness.Attributes.AttributeValue(chkOptIn.Checked));

                ClientOrderData = clientData;

                //Set the Client Order objects
                ClientCartContext contextData = (ClientCartContext)Session["ClientOrderData"];
                contextData.CustomerInfo = CustData;
                ////////contextData.CartAbandonmentId = CSResolve.Resolve<ICustomerService>().InsertCartAbandonment(CustData, contextData);
                Session["ClientOrderData"] = contextData;
                //Save Order information before upsale process
                int orderId = 0;

                //if (rId == 1)
                contextData.CartAbandonmentId = CSResolve.Resolve <ICustomerService>().InsertCartAbandonment(CustData, contextData);
                orderId = CSResolve.Resolve <IOrderService>().SaveOrder(clientData);
                UserSessions.InsertSessionEntry(Context, true, clientData.CartInfo.Total, clientData.CustomerInfo.CustomerId, orderId);

                //else
                //{
                //    //update order with modified customer shipping and billing and credit card information
                //    orderId = clientData.OrderId;
                //    CSResolve.Resolve<IOrderService>().UpdateOrder(orderId, clientData);
                //}

                if (orderId > 1)
                {
                    clientData.OrderId         = orderId;
                    Session["ClientOrderData"] = clientData;

                    //if (rId == 1)
                    //    Response.Redirect("PostSale.aspx");
                    //else
                    //Response.Redirect("Postsale.aspx");
                }
            }
        }
        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);
                        UserSessions.InsertSessionEntry(Context, false, 0, 0, orderId);
                        // 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 imgPhone_Click(object sender, ImageClickEventArgs e)
 {
     UserSessions.InsertSessionEntry(Context, true, false);
     Response.Redirect("tel:18006732909");
 }
Beispiel #6
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);
                    }
                }
            }
        }