Ejemplo n.º 1
0
        public void ApplyRewardPoints()
        {
            //reward points
            if (NopContext.Current.User != null)
            {
                NopContext.Current.User.UseRewardPointsDuringCheckout = cbUseRewardPoints.Checked;
            }

            //Check whether payment workflow is required
            bool isPaymentWorkflowRequired = IsPaymentWorkflowRequired();

            if (!isPaymentWorkflowRequired)
            {
                //save selected payment methods
                NopContext.Current.User.LastPaymentMethodId = 0;
                this.CustomerService.UpdateCustomer(NopContext.Current.User);

                var args1 = new CheckoutStepEventArgs()
                {
                    PaymentMethodSelected = true
                };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                {
                    Response.Redirect("~/checkoutpaymentinfo.aspx");
                }
            }
        }
Ejemplo n.º 2
0
 protected virtual void OnCheckoutStepChanged(CheckoutStepEventArgs e)
 {
     if (handler != null)
     {
         handler(this, e);
     }
 }
Ejemplo n.º 3
0
 protected void ctrlCheckoutPaymentInfo_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if (e.PaymentInfoEntered)
     {
         SelectPane(CheckoutStepEnum.Confirm);
     }
 }
Ejemplo n.º 4
0
 protected void ctrlCheckoutBillingAddress_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if (e.BillingAddressSelected)
     {
         SelectPane(CheckoutStepEnum.ShippingMethod);
     }
 }
Ejemplo n.º 5
0
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                //reward points
                NopContext.Current.User.UseRewardPointsDuringCheckout = cbUseRewardPoints.Checked;

                //payment methods
                int paymentMethodId = this.SelectedPaymentMethodId;
                var paymentMethod   = PaymentMethodManager.GetPaymentMethodById(paymentMethodId);
                if (paymentMethod != null && paymentMethod.IsActive)
                {
                    NopContext.Current.User = CustomerManager.SetLastPaymentMethodId(NopContext.Current.User.CustomerId, paymentMethodId);
                    var args1 = new CheckoutStepEventArgs()
                    {
                        PaymentMethodSelected = true
                    };
                    OnCheckoutStepChanged(args1);
                    if (!this.OnePageCheckout)
                    {
                        Response.Redirect("~/checkoutpaymentinfo.aspx");
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public void BindData()
        {
            //validate whether we need to display this control
            PaymentMethod paymentMethod = null;

            if (NopContext.Current.User != null)
            {
                paymentMethod = NopContext.Current.User.LastPaymentMethod;
            }
            if (paymentMethod != null &&
                paymentMethod.IsActive &&
                paymentMethod.HidePaymentInfoForZeroOrders)
            {
                decimal?shoppingCartTotalBase = ShoppingCartManager.GetShoppingCartTotal(this.Cart,
                                                                                         NopContext.Current.User.LastPaymentMethodId, NopContext.Current.User);

                if (shoppingCartTotalBase.HasValue && shoppingCartTotalBase.Value == decimal.Zero)
                {
                    this.PaymentInfo = this.GetPaymentInfo();
                    var args1 = new CheckoutStepEventArgs()
                    {
                        PaymentInfoEntered = true
                    };
                    OnCheckoutStepChanged(args1);
                    if (!this.OnePageCheckout)
                    {
                        Response.Redirect("~/checkoutconfirm.aspx");
                    }
                }
            }
        }
        protected void SelectAddress(Address shippingAddress)
        {
            if (shippingAddress == null)
            {
                //set default shipping address
                NopContext.Current.User.ShippingAddressId = 0;
                this.CustomerService.UpdateCustomer(NopContext.Current.User);

                var args1 = new CheckoutStepEventArgs()
                {
                    ShippingAddressSelected = true
                };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                {
                    Response.Redirect("~/checkoutbillingaddress.aspx");
                }
                return;
            }

            if (shippingAddress.AddressId == 0)
            {
                //check if address already exists
                var shippingAddress2 = NopContext.Current.User.ShippingAddresses.FindAddress(shippingAddress.FirstName,
                                                                                             shippingAddress.LastName, shippingAddress.PhoneNumber, shippingAddress.Email,
                                                                                             shippingAddress.FaxNumber, shippingAddress.Company,
                                                                                             shippingAddress.Address1, shippingAddress.Address2,
                                                                                             shippingAddress.City, shippingAddress.StateProvinceId, shippingAddress.ZipPostalCode,
                                                                                             shippingAddress.CountryId);

                if (shippingAddress2 != null)
                {
                    shippingAddress = shippingAddress2;
                }
                else
                {
                    shippingAddress.CustomerId       = NopContext.Current.User.CustomerId;
                    shippingAddress.IsBillingAddress = false;
                    shippingAddress.CreatedOn        = DateTime.UtcNow;
                    shippingAddress.UpdatedOn        = DateTime.UtcNow;

                    this.CustomerService.InsertAddress(shippingAddress);
                }
            }

            //set default shipping address
            NopContext.Current.User.ShippingAddressId = shippingAddress.AddressId;
            this.CustomerService.UpdateCustomer(NopContext.Current.User);

            var args2 = new CheckoutStepEventArgs()
            {
                ShippingAddressSelected = true
            };

            OnCheckoutStepChanged(args2);
            if (!this.OnePageCheckout)
            {
                Response.Redirect("~/checkoutbillingaddress.aspx");
            }
        }
Ejemplo n.º 8
0
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                //reward points
                ApplyRewardPoints();

                //payment methods
                int paymentMethodId = this.SelectedPaymentMethodId;
                if (paymentMethodId > 0)
                {
                    var paymentMethod = this.PaymentService.GetPaymentMethodById(paymentMethodId);
                    if (paymentMethod != null && paymentMethod.IsActive)
                    {
                        //save selected payment methods
                        NopContext.Current.User.LastPaymentMethodId = paymentMethodId;
                        this.CustomerService.UpdateCustomer(NopContext.Current.User);
                        var args1 = new CheckoutStepEventArgs()
                        {
                            PaymentMethodSelected = true
                        };
                        OnCheckoutStepChanged(args1);
                        if (!this.OnePageCheckout)
                        {
                            Response.Redirect("~/checkoutpaymentinfo.aspx");
                        }
                    }
                }
            }
        }
Ejemplo n.º 9
0
 protected void ctrlCheckoutPaymentMethod_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if (e.PaymentMethodSelected)
     {
         SelectPane(CheckoutStepEnum.PaymentInfo);
     }
 }
Ejemplo n.º 10
0
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    var paymentInfo = this.PaymentInfo;
                    if (paymentInfo == null)
                    {
                        var args1 = new CheckoutStepEventArgs()
                        {
                            OrderConfirmed = false
                        };
                        OnCheckoutStepChanged(args1);
                        if (!this.OnePageCheckout)
                        {
                            Response.Redirect("~/checkoutpaymentinfo.aspx");
                        }
                        else
                        {
                            return;
                        }
                    }
                    paymentInfo.BillingAddress   = NopContext.Current.User.BillingAddress;
                    paymentInfo.ShippingAddress  = NopContext.Current.User.ShippingAddress;
                    paymentInfo.CustomerLanguage = NopContext.Current.WorkingLanguage;
                    paymentInfo.CustomerCurrency = NopContext.Current.WorkingCurrency;

                    int    orderId = 0;
                    string result  = this.OrderService.PlaceOrder(paymentInfo, NopContext.Current.User, out orderId);
                    this.PaymentInfo = null;
                    var order = this.OrderService.GetOrderById(orderId);
                    if (!String.IsNullOrEmpty(result))
                    {
                        lConfirmOrderError.Text = Server.HtmlEncode(result);
                        return;
                    }
                    else
                    {
                        this.PaymentService.PostProcessPayment(order);
                    }
                    var args2 = new CheckoutStepEventArgs()
                    {
                        OrderConfirmed = true
                    };
                    OnCheckoutStepChanged(args2);
                    if (!this.OnePageCheckout)
                    {
                        Response.Redirect("~/checkoutcompleted.aspx");
                    }
                }
                catch (Exception exc)
                {
                    this.LogService.InsertLog(LogTypeEnum.OrderError, exc.Message, exc);
                    lConfirmOrderError.Text = Server.HtmlEncode(exc.ToString());
                }
            }
        }
Ejemplo n.º 11
0
        public void BindData()
        {
            bool shoppingCartRequiresShipping = ShippingManager.ShoppingCartRequiresShipping(Cart);

            pnlOutSideUS.Visible           = false;
            phSelectShippingMethod.Visible = true;
            lShippingMethodsError.Visible  = true;
            if (SettingManager.GetSettingValueBoolean("Shipping.OnlyDomesticShipping"))
            {
                if (NopContext.Current.User.ShippingAddress.Country.TwoLetterIsoCode != "US")
                {
                    pnlOutSideUS.Visible           = true;
                    phSelectShippingMethod.Visible = false;
                    lShippingMethodsError.Visible  = false;
                    return;
                }
            }
            if (!shoppingCartRequiresShipping)
            {
                NopContext.Current.User.LastShippingOption = null;
                var args1 = new CheckoutStepEventArgs()
                {
                    ShippingMethodSelected = true
                };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                {
                    Response.Redirect("~/checkoutpaymentmethod.aspx");
                }
            }
            else
            {
                string error           = string.Empty;
                var    shippingOptions = ShippingManager.GetShippingOptions(Cart, NopContext.Current.User, NopContext.Current.User.ShippingAddress, ref error);
                if (!String.IsNullOrEmpty(error))
                {
                    LogManager.InsertLog(LogTypeEnum.ShippingError, error, error);
                    phSelectShippingMethod.Visible = false;
                    lShippingMethodsError.Text     = Server.HtmlEncode(error);
                }
                else
                {
                    if (shippingOptions.Count > 0)
                    {
                        phSelectShippingMethod.Visible = true;
                        dlShippingOptions.DataSource   = shippingOptions;
                        dlShippingOptions.DataBind();
                    }
                    else
                    {
                        phSelectShippingMethod.Visible = false;
                        lShippingMethodsError.Text     = GetLocaleResourceString("Checkout.ShippingIsNotAllowed");
                    }
                }
            }
        }
Ejemplo n.º 12
0
 protected void ctrlCheckoutConfirm_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if (e.OrderConfirmed)
     {
         Response.Redirect("~/checkoutcompleted.aspx");
     }
     else
     {
         SelectPane(CheckoutStepEnum.PaymentInfo);
     }
 }
Ejemplo n.º 13
0
        protected void SelectAddress(Address shippingAddress)
        {
            if (shippingAddress == null)
            {
                NopContext.Current.User = CustomerManager.SetDefaultShippingAddress(NopContext.Current.User.CustomerId, 0);
                var args1 = new CheckoutStepEventArgs()
                {
                    ShippingAddressSelected = true
                };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                {
                    Response.Redirect("~/checkoutbillingaddress.aspx");
                }
                return;
            }

            if (shippingAddress.AddressId == 0)
            {
                //check if address already exists
                var shippingAddress2 = NopContext.Current.User.ShippingAddresses.FindAddress(shippingAddress.FirstName,
                                                                                             shippingAddress.LastName, shippingAddress.PhoneNumber, shippingAddress.Email,
                                                                                             shippingAddress.FaxNumber, shippingAddress.Company,
                                                                                             shippingAddress.Address1, shippingAddress.Address2,
                                                                                             shippingAddress.City, shippingAddress.StateProvinceId, shippingAddress.ZipPostalCode,
                                                                                             shippingAddress.CountryId);

                if (shippingAddress2 != null)
                {
                    shippingAddress = shippingAddress2;
                }
                else
                {
                    shippingAddress = CustomerManager.InsertAddress(NopContext.Current.User.CustomerId, false, shippingAddress.FirstName,
                                                                    shippingAddress.LastName, shippingAddress.PhoneNumber, shippingAddress.Email,
                                                                    shippingAddress.FaxNumber, shippingAddress.Company, shippingAddress.Address1, shippingAddress.Address2,
                                                                    shippingAddress.City, shippingAddress.StateProvinceId, shippingAddress.ZipPostalCode,
                                                                    shippingAddress.CountryId, DateTime.Now, DateTime.Now);
                }
            }

            NopContext.Current.User = CustomerManager.SetDefaultShippingAddress(NopContext.Current.User.CustomerId, shippingAddress.AddressId);
            var args2 = new CheckoutStepEventArgs()
            {
                ShippingAddressSelected = true
            };

            OnCheckoutStepChanged(args2);
            if (!this.OnePageCheckout)
            {
                Response.Redirect("~/checkoutbillingaddress.aspx");
            }
        }
Ejemplo n.º 14
0
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    var paymentInfo = this.PaymentInfo;
                    if (paymentInfo == null)
                    {
                        var args1 = new CheckoutStepEventArgs() { OrderConfirmed = false };
                        OnCheckoutStepChanged(args1);
                        if (!this.OnePageCheckout)
                        {
                            Response.Redirect("~/checkoutpaymentinfo.aspx");
                        }
                        else
                        {
                            return;
                        }
                    }
                    paymentInfo.BillingAddress = NopContext.Current.User.BillingAddress;
                    paymentInfo.ShippingAddress = NopContext.Current.User.ShippingAddress;
                    paymentInfo.CustomerLanguage = NopContext.Current.WorkingLanguage;
                    paymentInfo.CustomerCurrency = NopContext.Current.WorkingCurrency;

                    int orderId = 0;
                    string result = OrderManager.PlaceOrder(paymentInfo, NopContext.Current.User, out orderId);
                    this.PaymentInfo = null;
                    var order = OrderManager.GetOrderById(orderId);
                    if (!String.IsNullOrEmpty(result))
                    {
                        lConfirmOrderError.Text = Server.HtmlEncode(result);
                        return;
                    }
                    else
                    {
                        PaymentManager.PostProcessPayment(order);
                    }
                    var args2 = new CheckoutStepEventArgs() { OrderConfirmed = true };
                    OnCheckoutStepChanged(args2);
                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutcompleted.aspx");
                }
                catch (Exception exc)
                {
                    LogManager.InsertLog(LogTypeEnum.OrderError, exc.Message, exc);
                    lConfirmOrderError.Text = Server.HtmlEncode(exc.ToString());
                }
            }
        }
Ejemplo n.º 15
0
 protected void btnNextStep_Click(object sender, EventArgs e)
 {
     if (this.ValidateForm())
     {
         this.PaymentInfo = this.GetPaymentInfo();
         var args1 = new CheckoutStepEventArgs()
         {
             PaymentInfoEntered = true
         };
         OnCheckoutStepChanged(args1);
         if (!this.OnePageCheckout)
         {
             Response.Redirect("~/checkoutconfirm.aspx");
         }
     }
 }
Ejemplo n.º 16
0
        public void BindData()
        {
            //Check whether payment workflow is required
            bool isPaymentWorkflowRequired = IsPaymentWorkflowRequired();

            if (!isPaymentWorkflowRequired)
            {
                this.PaymentInfo = new PaymentInfo();
                var args1 = new CheckoutStepEventArgs()
                {
                    PaymentInfoEntered = true
                };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                {
                    Response.Redirect("~/checkoutconfirm.aspx");
                }
            }
        }
Ejemplo n.º 17
0
        protected void SelectAddress(Address shippingAddress)
        {
            if (shippingAddress == null)
            {
                NopContext.Current.User = CustomerManager.SetDefaultShippingAddress(NopContext.Current.User.CustomerId, 0);
                var args1 = new CheckoutStepEventArgs() { ShippingAddressSelected = true };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                    Response.Redirect("~/checkoutbillingaddress.aspx");
                return;
            }

            if (shippingAddress.AddressId == 0)
            {
                //check if address already exists
                var shippingAddress2 = NopContext.Current.User.ShippingAddresses.FindAddress(shippingAddress.FirstName,
                    shippingAddress.LastName, shippingAddress.PhoneNumber, shippingAddress.Email,
                    shippingAddress.FaxNumber, shippingAddress.Company,
                    shippingAddress.Address1, shippingAddress.Address2,
                    shippingAddress.City, shippingAddress.StateProvinceId, shippingAddress.ZipPostalCode,
                    shippingAddress.CountryId);

                if (shippingAddress2 != null)
                {
                    shippingAddress = shippingAddress2;
                }
                else
                {
                    shippingAddress = CustomerManager.InsertAddress(NopContext.Current.User.CustomerId, false, shippingAddress.FirstName,
                              shippingAddress.LastName, shippingAddress.PhoneNumber, shippingAddress.Email,
                              shippingAddress.FaxNumber, shippingAddress.Company, shippingAddress.Address1, shippingAddress.Address2,
                              shippingAddress.City, shippingAddress.StateProvinceId, shippingAddress.ZipPostalCode,
                              shippingAddress.CountryId, DateTime.UtcNow, DateTime.UtcNow);
                }
            }

            NopContext.Current.User = CustomerManager.SetDefaultShippingAddress(NopContext.Current.User.CustomerId, shippingAddress.AddressId);
            var args2 = new CheckoutStepEventArgs() { ShippingAddressSelected = true };
            OnCheckoutStepChanged(args2);
            if (!this.OnePageCheckout)
                Response.Redirect("~/checkoutbillingaddress.aspx");
        }
Ejemplo n.º 18
0
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                //reward points
                ApplyRewardPoints();

                //payment methods
                int paymentMethodId = this.SelectedPaymentMethodId;
                var paymentMethod = PaymentMethodManager.GetPaymentMethodById(paymentMethodId);
                if (paymentMethod != null && paymentMethod.IsActive)
                {
                    NopContext.Current.User = CustomerManager.SetLastPaymentMethodId(NopContext.Current.User.CustomerId, paymentMethodId);
                    var args1 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                    OnCheckoutStepChanged(args1);
                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutpaymentinfo.aspx");
                }
            }
        }
Ejemplo n.º 19
0
 protected void btnNextStep_Click(object sender, EventArgs e)
 {
     if (Page.IsValid)
     {
         var shippingOption = this.SelectedShippingOption;
         if (shippingOption != null)
         {
             NopContext.Current.User.LastShippingOption = shippingOption;
             var args1 = new CheckoutStepEventArgs()
             {
                 ShippingMethodSelected = true
             };
             OnCheckoutStepChanged(args1);
             if (!this.OnePageCheckout)
             {
                 Response.Redirect("~/checkoutpaymentmethod.aspx");
             }
         }
     }
 }
Ejemplo n.º 20
0
        public void BindData()
        {
            bool shoppingCartRequiresShipping = this.ShippingService.ShoppingCartRequiresShipping(Cart);

            if (!shoppingCartRequiresShipping)
            {
                NopContext.Current.User.LastShippingOption = null;
                var args1 = new CheckoutStepEventArgs()
                {
                    ShippingMethodSelected = true
                };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                {
                    Response.Redirect("~/checkoutpaymentmethod.aspx");
                }
            }
            else
            {
                string  error           = string.Empty;
                Address address         = NopContext.Current.User.ShippingAddress;
                var     shippingOptions = this.ShippingService.GetShippingOptions(Cart, NopContext.Current.User, address, ref error);
                if (!String.IsNullOrEmpty(error))
                {
                    this.LogService.InsertLog(LogTypeEnum.ShippingError, error, error);
                    phSelectShippingMethod.Visible = false;
                    lShippingMethodsError.Text     = Server.HtmlEncode(error);
                }
                else
                {
                    if (shippingOptions.Count > 0)
                    {
                        phSelectShippingMethod.Visible = true;
                        dlShippingOptions.DataSource   = shippingOptions;
                        dlShippingOptions.DataBind();

                        //select a default shipping option
                        if (dlShippingOptions.Items.Count > 0)
                        {
                            if (NopContext.Current.User != null &&
                                NopContext.Current.User.LastShippingOption != null)
                            {
                                //already selected shipping option
                                this.SelectedShippingOption = NopContext.Current.User.LastShippingOption;
                            }
                            else
                            {
                                //otherwise, the first shipping option
                                var tmp1             = dlShippingOptions.Items[0];
                                var rdShippingOption = tmp1.FindControl("rdShippingOption") as RadioButton;
                                if (rdShippingOption != null)
                                {
                                    rdShippingOption.Checked = true;
                                }
                            }
                        }
                    }
                    else
                    {
                        phSelectShippingMethod.Visible = false;
                        lShippingMethodsError.Text     = GetLocaleResourceString("Checkout.ShippingIsNotAllowed");
                    }
                }
            }
        }
 protected void ctrlCheckoutShippingMethod_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if (e.ShippingMethodSelected)
     {
         SelectPane(CheckoutStepEnum.Confirm);
     }
 }
 protected void ctrlCheckoutShippingAddress_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if (e.ShippingAddressSelected)
     {
         SelectPane(CheckoutStepEnum.BillingAddress);
     }
 }
 protected void ctrlCheckoutPaymentInfo_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if (e.PaymentInfoEntered)
     {
         SelectPane(CheckoutStepEnum.Confirm);
     }
 }
 protected void ctrlCheckoutConfirm_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if (e.OrderConfirmed)
     {
         Response.Redirect("~/checkoutcompleted.aspx", false);
     }
     else
     {
         SelectPane(CheckoutStepEnum.Confirm);
     }
 }
        public void BindData()
        {
            //validate whether we need to display this control
            PaymentMethod paymentMethod = null;
            if (NopContext.Current.User != null)
            {
                paymentMethod = NopContext.Current.User.LastPaymentMethod;
            }
            if (paymentMethod != null &&
                paymentMethod.IsActive &&
                paymentMethod.HidePaymentInfoForZeroOrders)
            {

                decimal? shoppingCartTotalBase = ShoppingCartManager.GetShoppingCartTotal(this.Cart,
                NopContext.Current.User.LastPaymentMethodId, NopContext.Current.User);

                if (shoppingCartTotalBase.HasValue && shoppingCartTotalBase.Value == decimal.Zero)
                {
                    this.PaymentInfo = this.GetPaymentInfo();
                    var args1 = new CheckoutStepEventArgs() { PaymentInfoEntered = true };
                    OnCheckoutStepChanged(args1);
                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutconfirm.aspx");
                }
            }
        }
        public void ApplyRewardPoints()
        {
            //reward points
                if (NopContext.Current.User != null)
                {
                    NopContext.Current.User.UseRewardPointsDuringCheckout = false;// cbUseRewardPoints.Checked;
                }

                //Check whether payment workflow is required
                bool isPaymentWorkflowRequired = IsPaymentWorkflowRequired();
                if (!isPaymentWorkflowRequired)
                {
                    //save selected payment methods
                    NopContext.Current.User.LastPaymentMethodId = 0;
                    this.CustomerService.UpdateCustomer(NopContext.Current.User);

                    var args1 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                    OnCheckoutStepChanged(args1);
                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutpaymentinfo.aspx");
                }
        }
        protected void btnTheSameAsShippingAddress_Click(object sender, EventArgs e)
        {
            var shippingAddress = NopContext.Current.User.ShippingAddress;
            if (shippingAddress != null && this.CustomerService.CanUseAddressAsBillingAddress(shippingAddress))
            {
                var billingAddress = new Address();
                billingAddress.AddressId = 0;
                billingAddress.CustomerId = shippingAddress.CustomerId;
                billingAddress.IsBillingAddress = true;
                billingAddress.FirstName = shippingAddress.FirstName;
                billingAddress.LastName = shippingAddress.LastName;
                billingAddress.PhoneNumber = shippingAddress.PhoneNumber;
                billingAddress.Email = shippingAddress.Email;
                billingAddress.FaxNumber = shippingAddress.FaxNumber;
                billingAddress.Company = shippingAddress.Company;
                billingAddress.Address1 = shippingAddress.Address1;
                billingAddress.Address2 = shippingAddress.Address2;
                billingAddress.City = shippingAddress.City;
                billingAddress.StateProvinceId = shippingAddress.StateProvinceId;
                billingAddress.ZipPostalCode = shippingAddress.ZipPostalCode;
                billingAddress.CountryId = shippingAddress.CountryId;
                billingAddress.CreatedOn = shippingAddress.CreatedOn;

                ctrlBillingAddress.Address = billingAddress;

                //automatically select the address for the user and move to next step. Rather than copying values then having to click next.
                //comment the line below to force a customer to click 'Next'
                SelectAddress(this.BillingAddress);

                //payment methods
                //don't bother searching for a payment method.
                //we know which one we're going to use Paypal Peer to Peer.

                var paymentMethod = this.PaymentService.GetPaymentMethodBySystemKeyword("PAYPALPEER");
                if (paymentMethod != null && paymentMethod.IsActive)
                {
                    //save selected payment methods
                    NopContext.Current.User.LastPaymentMethodId = paymentMethod.PaymentMethodId;
                    this.CustomerService.UpdateCustomer(NopContext.Current.User);
                    var args2 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                    OnCheckoutStepChanged(args2);
                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutpaymentinfo.aspx");
                }

                //paymentinfo stuff.
                this.PaymentInfo = this.GetPaymentInfo();
                var args1 = new CheckoutStepEventArgs() { PaymentInfoEntered = true };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                    Response.Redirect("~/checkoutconfirm.aspx");

            }
            else
            {
                pnlTheSameAsShippingAddress.Visible = false;
            }
        }
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                SelectAddress(this.BillingAddress);

                //payment method stuff
                //reward points
                ApplyRewardPoints();

                //payment methods
                //don't bother searching for a payment method.
                //we know which one we're going to use Paypal Peer to Peer.

                var paymentMethod = this.PaymentService.GetPaymentMethodBySystemKeyword("PAYPALPEER");
                if (paymentMethod != null && paymentMethod.IsActive)
                {
                    //save selected payment methods
                    NopContext.Current.User.LastPaymentMethodId = paymentMethod.PaymentMethodId;
                    this.CustomerService.UpdateCustomer(NopContext.Current.User);
                    var args2 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                    OnCheckoutStepChanged(args2);
                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutpaymentinfo.aspx");
                }

                //paymentinfo stuff.
                this.PaymentInfo = this.GetPaymentInfo();
                var args1 = new CheckoutStepEventArgs() { PaymentInfoEntered = true };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                    Response.Redirect("~/checkoutconfirm.aspx");

            }
        }
        protected void btnSelect_Command(object sender, CommandEventArgs e)
        {
            if (Page.IsValid)
            {
                int addressId = int.Parse(e.CommandArgument.ToString());
                var billingAddress = this.CustomerService.GetAddressById(addressId);
                if (billingAddress != null && NopContext.Current.User != null)
                {
                    var prevAddress = this.CustomerService.GetAddressById(billingAddress.AddressId);
                    if (prevAddress.CustomerId != NopContext.Current.User.CustomerId)
                        return;
                }

                SelectAddress(billingAddress);

                //payment method stuff
                //reward points
                ApplyRewardPoints();

                //payment methods
                //don't bother searching for a payment method.
                //we know which one we're going to use Paypal Peer to Peer.

                var paymentMethod = this.PaymentService.GetPaymentMethodBySystemKeyword("PAYPALPEER");
                if (paymentMethod != null && paymentMethod.IsActive)
                {
                    //save selected payment methods
                    NopContext.Current.User.LastPaymentMethodId = paymentMethod.PaymentMethodId;
                    this.CustomerService.UpdateCustomer(NopContext.Current.User);
                    var args2 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                    OnCheckoutStepChanged(args2);
                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutpaymentinfo.aspx");
                }

                //paymentinfo stuff.
                this.PaymentInfo = this.GetPaymentInfo();
                var args1 = new CheckoutStepEventArgs() { PaymentInfoEntered = true };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                    Response.Redirect("~/checkoutconfirm.aspx");

            }
        }
        //处理积分返点
        protected void cbUseRewardPoints_CheckedChanged(object sender, EventArgs e)
        {
            int rewardPointsBalance = NopContext.Current.User.RewardPointsBalance;
            decimal rewardPointsAmountBase = OrderService.ConvertRewardPointsToAmount(rewardPointsBalance);
            decimal rewardPointsAmount = CurrencyService.ConvertCurrency(rewardPointsAmountBase, CurrencyService.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);

            //判读是否需要运送方式
            bool shoppingCartRequiresShipping = ShippingService.ShoppingCartRequiresShipping(Cart);
            //如果是匿名访问 隐藏已有地址显示特效
            if ((NopContext.Current.User == null || NopContext.Current.User.IsGuest) && CustomerService.AnonymousCheckoutAllowed)
            {
                AnonymousCheckoutAllowedSign = true;
                //如果是匿名访问 不存在显示和隐藏 那两个的按钮
                if (!shoppingCartRequiresShipping)
                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "showHideCheckoutAddress(5,0,0);", true);
                else
                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "showHideCheckoutAddress(3,0,0);", true);
            }
            else
            {
                if (!shoppingCartRequiresShipping)
                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "showHideCheckoutAddress(6,0,0);", true);

            }

            checkoutDataMessage.Visible = true;

            //reward points
            ApplyRewardPoints();

            //如果 选中返点 并且返点的金额大于商品的 实际金额  就将 支付方式隐藏起来   如果没选中 大家一起显示
            if (cbUseRewardPoints.Checked == false)
            {
                rewardPointShowHide1.Visible = true;
                rewardPointShowHide2.Visible = true;
                if (SunTestSign == 0)
                    billingMethodSign = 0;
            }
            else
            {

                string totalPrice = OrderSummaryControl.getTotalPriceSummary;
                if (totalPrice == "Calculated during checkout")
                {
                    rewardPointShowHide1.Visible = true;
                    rewardPointShowHide2.Visible = true;
                }
                else
                {
                    decimal pointTotalMoney = rewardPointsAmount;
                    decimal allTotalPrice = decimal.Parse(totalPrice);
                    if (pointTotalMoney > allTotalPrice)
                    {
                        rewardPointShowHide1.Visible = false;
                        rewardPointShowHide2.Visible = false;
                        billingMethodSign = 1;

                        //payment methods  如果选择的是返点支付  并且返点的价格大于商品的价格 就默认为 store支付  store ID为25
                        int paymentMethodId = 25;
                        var paymentMethod = PaymentService.GetPaymentMethodById(paymentMethodId);
                        if (paymentMethod != null && paymentMethod.IsActive)
                        {

                            NopContext.Current.User.LastPaymentMethodId = paymentMethodId;
                            this.CustomerService.UpdateCustomer(NopContext.Current.User);
                            //NopContext.Current.User = CustomerService.SetLastPaymentMethodId(NopContext.Current.User.CustomerId, paymentMethodId);
                            var args1 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                            OnCheckoutStepChanged(args1);
                            billingMethodSign = 1;

                        }

                    }
                    else
                    {
                        rewardPointShowHide1.Visible = true;
                        rewardPointShowHide2.Visible = true;
                    }
                }
            }

            if (billingMethodSign == 0)
            {
                rewardPointShowHide2.Visible = false;
            }

            //刷新
            OrderSummaryControl.BindData();
        }
Ejemplo n.º 31
0
 protected void btnNextStep_Click(object sender, EventArgs e)
 {
     if (Page.IsValid)
     {
         var shippingOption = this.SelectedShippingOption;
         if (shippingOption != null)
         {
             NopContext.Current.User.LastShippingOption = shippingOption;
             var args1 = new CheckoutStepEventArgs() { ShippingMethodSelected = true };
             OnCheckoutStepChanged(args1);
             if (!this.OnePageCheckout)
                 Response.Redirect("~/checkoutpaymentmethod.aspx");
         }
     }
 }
        protected void SelectAddress(Address billingAddress)
        {
            if (billingAddress == null)
            {
                //set default billing address
                NopContext.Current.User.BillingAddressId = 0;
                this.CustomerService.UpdateCustomer(NopContext.Current.User);
                var args1 = new CheckoutStepEventArgs() { BillingAddressSelected = true };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                    Response.Redirect("~/checkoutshippingmethod.aspx");
                return;
            }

            if (billingAddress.AddressId == 0)
            {
                //check if address already exists
                var billingAddress2 = NopContext.Current.User.BillingAddresses.FindAddress(billingAddress.FirstName,
                     billingAddress.LastName, billingAddress.PhoneNumber, billingAddress.Email,
                     billingAddress.FaxNumber, billingAddress.Company,
                     billingAddress.Address1, billingAddress.Address2,
                     billingAddress.City, billingAddress.StateProvinceId, billingAddress.ZipPostalCode,
                     billingAddress.CountryId);

                if (billingAddress2 != null)
                {
                    billingAddress = billingAddress2;
                }
                else
                {
                    billingAddress.CustomerId = NopContext.Current.User.CustomerId;
                    billingAddress.IsBillingAddress = true;
                    billingAddress.CreatedOn = DateTime.UtcNow;
                    billingAddress.UpdatedOn = DateTime.UtcNow;

                    this.CustomerService.InsertAddress(billingAddress);
                }
            }
            //set default billing address
            NopContext.Current.User.BillingAddressId = billingAddress.AddressId;
            this.CustomerService.UpdateCustomer(NopContext.Current.User);
            var args2 = new CheckoutStepEventArgs() { BillingAddressSelected = true };
            OnCheckoutStepChanged(args2);
            if (!this.OnePageCheckout)
                Response.Redirect("~/checkoutshippingmethod.aspx");
        }
 public void BindData()
 {
     //Check whether payment workflow is required
     bool isPaymentWorkflowRequired = IsPaymentWorkflowRequired();
     if (!isPaymentWorkflowRequired)
     {
         this.PaymentInfo = new PaymentInfo();
         var args1 = new CheckoutStepEventArgs() { PaymentInfoEntered = true };
         OnCheckoutStepChanged(args1);
         if (!this.OnePageCheckout)
             Response.Redirect("~/checkoutconfirm.aspx");
     }
 }
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    var paymentInfo = this.PaymentInfo;

                    if (paymentInfo == null)
                    {
                        var args1 = new CheckoutStepEventArgs() { OrderConfirmed = false };
                        OnCheckoutStepChanged(args1);
                        if (!this.OnePageCheckout)
                        {
                            Response.Redirect("~/checkoutpaymentinfo.aspx");
                        }
                        else
                        {
                            return;
                        }
                    }
                    paymentInfo.BillingAddress = NopContext.Current.User.BillingAddress;
                    paymentInfo.ShippingAddress = NopContext.Current.User.ShippingAddress;
                    paymentInfo.CustomerLanguage = NopContext.Current.WorkingLanguage;
                    paymentInfo.CustomerCurrency = NopContext.Current.WorkingCurrency;

                    int orderId = 0;
                    string orderNote = txtNoteToSeller.Value.Trim().Length > 0 ? txtNoteToSeller.Value.Trim() : string.Empty;

                    string result = this.OrderService.PlaceOrder(paymentInfo, NopContext.Current.User, _vendorId, orderNote, out orderId);

                    this.PaymentInfo = null;
                    var order = this.OrderService.GetOrderById(orderId);

                    //if (txtNoteToSeller.Value.Trim().Length > 0) {
                    //    OrderService.InsertOrderNote(orderId, txtNoteToSeller.Value.Trim(), true, DateTime.Now);
                    //}

                    if (!String.IsNullOrEmpty(result))
                    {
                        lConfirmOrderError.Text = Server.HtmlEncode(result);
                        return;
                    }
                    else
                    {
                        hidPaypalURL.Value = this.PaymentService.PostProcessPayment(order);
                    }

                    var args2 = new CheckoutStepEventArgs() { OrderConfirmed = true };
                    if (hidPaypalURL.Value != String.Empty)
                    {
                        //redirect via javascript, directly into the frame.
                        //Response.Redirect(hidPaypalURL.Value, false);
                    }
                    else
                    {
                        OnCheckoutStepChanged(args2);
                    }

                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutcompleted.aspx");
                }
                catch (Exception exc)
                {
                    this.LogService.InsertLog(LogTypeEnum.OrderError, exc.Message, exc);
                    lConfirmOrderError.Text = Server.HtmlEncode(exc.ToString());
                }
            }
            else
            {
                foreach (System.Web.UI.IValidator poo in Page.Validators)
                {
                    if (!poo.IsValid) {
                        if (lConfirmOrderError.Text == String.Empty)
                        {
                            lConfirmOrderError.Text = poo.ErrorMessage;
                        }
                        else
                        {
                            lConfirmOrderError.Text += poo.ErrorMessage;
                        }
                    }
                }
            }
        }
Ejemplo n.º 35
0
 protected void ctrlCheckoutPaymentMethod_CheckoutStepChanged(object sender, CheckoutStepEventArgs e)
 {
     if(e.PaymentMethodSelected)
     {
         SelectPane(CheckoutStepEnum.PaymentInfo);
     }
 }
        public void ExecutePayStatus(string paykey, string strmaxAmount)
        {
            StringBuilder dataToSend = new StringBuilder();
            string strRequest = null;
            strRequest = strRequest + "requestEnvelope.errorLanguage=" + NopContext.Current.WorkingLanguage.LanguageCulture;
            strRequest = strRequest + "&requestEnvelope.detailLevel=ReturnAll";
            strRequest = strRequest + "&payKey=" + paykey;
            strRequest = strRequest + "&returnUrl=" + ConfigurationManager.AppSettings["returnUrl"];// "https://localhost:8091/SewbieDemo/PaypalAPRedirect.aspx";
            dataToSend.Append(strRequest);
            string Execute_strEndpointURL = ConfigurationManager.AppSettings["ExecuteDetails_strEndpointURL"];
            try
            {
                string strResponse = this.GetResponce(dataToSend, Execute_strEndpointURL);
                string[] strSplited = strResponse.Split('&');
                string strPayKey = null;
                string strTmp = strSplited[1];
                strTmp = strTmp.Substring(21, 7);
                if (strTmp == "Success")
                {
                    strPayKey = strSplited[4];
                    strPayKey = strPayKey.Substring(7, 20);
                    int j = 0;
                    string strTransactionIds = "";
                    string strStatus = "";
                    for (int i = 0; i < strSplited.Length; i++)
                    {
                        if (strSplited[i].Contains("paymentInfoList.paymentInfo(" + j.ToString() + ").senderTransactionId="))
                        {
                            if (string.IsNullOrEmpty(strTransactionIds))
                                strTransactionIds = strSplited[i].Split('=')[1].ToString();
                            else
                                strTransactionIds += "," + strSplited[i].Split('=')[1].ToString();
                            j++;
                        }
                        if (strSplited[i].Contains("status="))
                            strStatus = strSplited[i].Split('=')[1].ToString();
                    }
                    if (strStatus == "CREATED")
                    {
                        Response.Redirect(ConfigurationManager.AppSettings["PayPalSuccessReturnUrl"] + strmaxAmount + "&strTransactionIds=" + strTransactionIds + "&strStatus=" + strStatus);
                    }
                    var paymentInfo = this.PaymentInfo;
                    paymentInfo = new BusinessLogic.Payment.PaymentInfo();
                    paymentInfo.BillingAddress = NopContext.Current.User.BillingAddress;
                    paymentInfo.ShippingAddress = NopContext.Current.User.ShippingAddress;
                    paymentInfo.CustomerLanguage = NopContext.Current.WorkingLanguage;
                    paymentInfo.CustomerCurrency = NopContext.Current.WorkingCurrency;
                    paymentInfo.PaymentMethodId = 43;
                    int orderId = 0;

                    string result = this.OrderService.PlaceOrder(paymentInfo, NopContext.Current.User, out orderId);

                    this.PaymentInfo = null;
                    var order = this.OrderService.GetOrderById(orderId);

                    if (txtNoteToSeller.Value.Trim().Length > 0)
                    {
                        OrderService.InsertOrderNote(orderId, txtNoteToSeller.Value.Trim(), DateTime.Now);
                    }

                    if (!String.IsNullOrEmpty(result))
                    {
                        lConfirmOrderError.Text = Server.HtmlEncode(result);
                        return;
                    }
                    else
                    {
                       // hidPaypalURL.Value = this.PaymentService.PostProcessPayment(order);
                    }

                    var args2 = new CheckoutStepEventArgs() { OrderConfirmed = true };
                    if (hidPaypalURL.Value != String.Empty)
                    {
                        //redirect via javascript, directly into the frame.
                        //Response.Redirect(hidPaypalURL.Value, false);
                    }
                    else
                    {
                        OnCheckoutStepChanged(args2);
                    }

                    Response.Redirect(ConfigurationManager.AppSettings["PayPalSuccessReturnUrl"] + strmaxAmount + "&strTransactionIds=" + strTransactionIds + "&strStatus=" + strStatus);
                }
            }
            catch (Exception ex)
            {
                Response.Redirect(ConfigurationManager.AppSettings["PayPalSuccessReturnUrl"] + strmaxAmount + "&strStatus=Failed" + "&strTransactionIds=");
            }
        }
        public void BindData()
        {
            bool shoppingCartRequiresShipping = this.ShippingService.ShoppingCartRequiresShipping(Cart);
            if (!shoppingCartRequiresShipping)
            {
                NopContext.Current.User.LastShippingOption = null;
                var args1 = new CheckoutStepEventArgs() { ShippingMethodSelected = true };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                    Response.Redirect("~/checkoutpaymentmethod.aspx");
            }
            else
            {
                string error = string.Empty;
                Address address = NopContext.Current.User.ShippingAddress;
                var shippingOptions = this.ShippingService.GetShippingOptions(Cart, NopContext.Current.User, address, ref error);
                if (!String.IsNullOrEmpty(error))
                {
                    this.LogService.InsertLog(LogTypeEnum.ShippingError, error, error);
                    phSelectShippingMethod.Visible = false;
                    lShippingMethodsError.Text = Server.HtmlEncode(error);
                }
                else
                {
                    if (shippingOptions.Count > 0)
                    {
                        phSelectShippingMethod.Visible = true;
                        dlShippingOptions.DataSource = shippingOptions;
                        dlShippingOptions.DataBind();

                        //select a default shipping option
                        if (dlShippingOptions.Items.Count > 0)
                        {
                            if (NopContext.Current.User != null &&
                                NopContext.Current.User.LastShippingOption != null)
                            {
                                //already selected shipping option
                                this.SelectedShippingOption = NopContext.Current.User.LastShippingOption;
                            }
                            else
                            {
                                //otherwise, the first shipping option
                                var tmp1 = dlShippingOptions.Items[0];
                                var rdShippingOption = tmp1.FindControl("rdShippingOption") as RadioButton;
                                if (rdShippingOption != null)
                                {
                                    rdShippingOption.Checked = true;
                                }
                            }
                        }
                    }
                    else
                    {
                        phSelectShippingMethod.Visible = false;
                        lShippingMethodsError.Text = GetLocaleResourceString("Checkout.ShippingIsNotAllowed");
                    }
                }
            }
        }
 protected void btnNextStep_Click(object sender, EventArgs e)
 {
     if (this.ValidateForm())
     {
         this.PaymentInfo = this.GetPaymentInfo();
         var args1 = new CheckoutStepEventArgs() { PaymentInfoEntered = true };
         OnCheckoutStepChanged(args1);
         if (!this.OnePageCheckout)
             Response.Redirect("~/checkoutconfirm.aspx");
     }
 }
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                     var paymentInfo = this.PaymentInfo;

                    if (paymentInfo == null)
                    {
                        var args1 = new CheckoutStepEventArgs() { OrderConfirmed = false };
                        OnCheckoutStepChanged(args1);
                        if (!this.OnePageCheckout)
                        {
                            Response.Redirect("~/checkoutpaymentinfo.aspx");

                        }

                    }

                    if (!this.OnePageCheckout)
                        Response.Redirect("~/checkoutcompleted.aspx");
                    else
                    {
                        if (txtNoteToSeller.Value.Trim().Length > 0)
                        {
                            Session["txtNoteToSeller"]= txtNoteToSeller.Value.Trim();
                        }
                        if (Session["Vendor_Based_amt_List"] != null)
                        {
                            List<ShoppingCartItem> vendorList = (List<ShoppingCartItem>)Session["Vendor_Based_amt_List"];
                            decimal tempamount = 0;
                            foreach (ShoppingCartItem item in vendorList)
                            {
                                tempamount += item.CustomerEnteredPrice;
                            }
                            if (paymentInfo == null)
                            paymentInfo = new BusinessLogic.Payment.PaymentInfo();

                            paymentInfo.BillingAddress = NopContext.Current.User.BillingAddress;
                            paymentInfo.ShippingAddress = NopContext.Current.User.ShippingAddress;
                            paymentInfo.CustomerLanguage = NopContext.Current.WorkingLanguage;
                            paymentInfo.CustomerCurrency = NopContext.Current.WorkingCurrency;
                            paymentInfo.PaymentMethodId = 43;
                            Order result = this.OrderService.TotalAmountForPayment(paymentInfo, NopContext.Current.User);
                            foreach (ShoppingCartItem item in vendorList)
                            {
                                Order result1 = this.OrderService.VendorBasedTotalAmountForPayment(paymentInfo, NopContext.Current.User, item.VendorID);
                                if (result1 != null)
                                    item.CustomerEnteredPrice = result1.OrderTotalInCustomerCurrency;
                            }
                            Session["Vendor_Based_amt_List"] = vendorList;
                            amount =result.OrderTotalInCustomerCurrency.ToString();
                            PreApproved(amount.ToString());
                        }
                        else
                            Response.Redirect("~/shoppingcart.aspx");

                    }
                }
                catch (Exception exc)
                {
                    this.LogService.InsertLog(LogTypeEnum.OrderError, exc.Message, exc);
                    lConfirmOrderError.Text = Server.HtmlEncode(exc.ToString());
                }
            }
            else
            {
                foreach (System.Web.UI.IValidator poo in Page.Validators)
                {
                    if (!poo.IsValid)
                    {
                        if (lConfirmOrderError.Text == String.Empty)
                        {
                            lConfirmOrderError.Text = poo.ErrorMessage;
                        }
                        else
                        {
                            lConfirmOrderError.Text += poo.ErrorMessage;
                        }
                    }
                }
            }
        }
Ejemplo n.º 40
0
 public void BindData()
 {
     bool shoppingCartRequiresShipping = ShippingManager.ShoppingCartRequiresShipping(Cart);
     if (!shoppingCartRequiresShipping)
     {
         NopContext.Current.User.LastShippingOption = null;
         var args1 = new CheckoutStepEventArgs() { ShippingMethodSelected = true };
         OnCheckoutStepChanged(args1);
         if (!this.OnePageCheckout)
             Response.Redirect("~/checkoutpaymentmethod.aspx");
     }
     else
     {
         string error = string.Empty;
         Address address = NopContext.Current.User.ShippingAddress;
         var shippingOptions = ShippingManager.GetShippingOptions(Cart, NopContext.Current.User, address, ref error);
         if (!String.IsNullOrEmpty(error))
         {
             LogManager.InsertLog(LogTypeEnum.ShippingError, error, error);
             phSelectShippingMethod.Visible = false;
             lShippingMethodsError.Text = Server.HtmlEncode(error);
         }
         else
         {
             if (shippingOptions.Count > 0)
             {
                 phSelectShippingMethod.Visible = true;
                 dlShippingOptions.DataSource = shippingOptions;
                 dlShippingOptions.DataBind();
             }
             else
             {
                 phSelectShippingMethod.Visible = false;
                 lShippingMethodsError.Text = GetLocaleResourceString("Checkout.ShippingIsNotAllowed");
             }
         }
     }
 }
        //触发 支付方式, 并显示具体支付信息
        protected void BillingMethod_CheckedChanged(object sender, EventArgs e)
        {
            SunTestSign = 1;
            rewardPointShowHide2.Visible = true;

            //判读是否需要运送方式
            bool shoppingCartRequiresShipping = ShippingService.ShoppingCartRequiresShipping(Cart);
            //如果是匿名访问 隐藏已有地址显示特效
            if ((NopContext.Current.User == null || NopContext.Current.User.IsGuest) && CustomerService.AnonymousCheckoutAllowed)
            {
                AnonymousCheckoutAllowedSign = true;
                //如果是匿名访问 不存在显示和隐藏 那两个的按钮
                if (!shoppingCartRequiresShipping)
                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "showHideCheckoutAddress(5,0,0);", true);
                else
                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "showHideCheckoutAddress(3,0,0);", true);
            }
            else
            {
                if (!shoppingCartRequiresShipping)
                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "showHideCheckoutAddress(6,0,0);", true);

            }

            checkoutDataMessage.Visible = true;
            //reward points
            ApplyRewardPoints();
            //payment methods
            int paymentMethodId = this.SelectedPaymentMethodId;
            var paymentMethod = PaymentService.GetPaymentMethodById(paymentMethodId);
               /*
            if (paymentMethod != null && paymentMethod.IsActive)
            {
                NopContext.Current.User = CustomerService.SetLastPaymentMethodId(NopContext.Current.User.CustomerId, paymentMethodId);
                var args1 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                OnCheckoutStepChanged(args1);
                billingMethodSign = 1;

            }
            */

            if (paymentMethod != null && paymentMethod.IsActive)
            {
                //save selected payment methods
                NopContext.Current.User.LastPaymentMethodId = paymentMethodId;
                this.CustomerService.UpdateCustomer(NopContext.Current.User);
                var args1 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                OnCheckoutStepChanged(args1);
                billingMethodSign = 1;
            }

            LoadPaymentControl();
            //刷新
            OrderSummaryControl.BindData();
        }
Ejemplo n.º 42
0
        public void BindData()
        {
            //Check whether payment workflow is required
            bool isPaymentWorkflowRequired = IsPaymentWorkflowRequired();

            if (!isPaymentWorkflowRequired)
            {
                //save selected payment methods
                NopContext.Current.User.LastPaymentMethodId = 0;
                this.CustomerService.UpdateCustomer(NopContext.Current.User);

                var args1 = new CheckoutStepEventArgs()
                {
                    PaymentMethodSelected = true
                };
                OnCheckoutStepChanged(args1);
                if (!this.OnePageCheckout)
                {
                    Response.Redirect("~/checkoutpaymentinfo.aspx");
                }
            }

            //reward points
            if (this.OrderService.RewardPointsEnabled && !this.Cart.IsRecurring)
            {
                int     rewardPointsBalance    = NopContext.Current.User.RewardPointsBalance;
                decimal rewardPointsAmountBase = this.OrderService.ConvertRewardPointsToAmount(rewardPointsBalance);
                decimal rewardPointsAmount     = this.CurrencyService.ConvertCurrency(rewardPointsAmountBase, this.CurrencyService.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);
                if (rewardPointsAmount > decimal.Zero)
                {
                    string rewardPointsAmountStr = PriceHelper.FormatPrice(rewardPointsAmount, true, false);
                    cbUseRewardPoints.Text  = GetLocaleResourceString("Checkout.UseRewardPoints", rewardPointsBalance, rewardPointsAmountStr);
                    pnlRewardPoints.Visible = true;
                }
                else
                {
                    pnlRewardPoints.Visible = false;
                }
            }
            else
            {
                pnlRewardPoints.Visible = false;
            }

            //payment methods
            int?filterByCountryId = null;

            if (NopContext.Current.User.BillingAddress != null && NopContext.Current.User.BillingAddress.Country != null)
            {
                filterByCountryId = NopContext.Current.User.BillingAddress.CountryId;
            }

            bool hasButtonMethods    = false;
            var  boundPaymentMethods = new List <PaymentMethod>();
            var  paymentMethods      = this.PaymentService.GetAllPaymentMethods(filterByCountryId);

            foreach (var pm in paymentMethods)
            {
                switch (pm.PaymentMethodType)
                {
                case PaymentMethodTypeEnum.Unknown:
                case PaymentMethodTypeEnum.Standard:
                {
                    if (!Cart.IsRecurring || this.PaymentService.SupportRecurringPayments(pm.PaymentMethodId) != RecurringPaymentTypeEnum.NotSupported)
                    {
                        boundPaymentMethods.Add(pm);
                    }
                }
                break;

                case PaymentMethodTypeEnum.Button:
                {
                    //PayPal Express is placed here as button
                    if (pm.SystemKeyword == "PayPalExpress")
                    {
                    }
                }
                break;

                default:
                    break;
                }
            }

            //bind PayPal Express button
            btnPaypalExpressButton.BindData();
            if (btnPaypalExpressButton.Visible)
            {
                hasButtonMethods = true;
            }

            if (boundPaymentMethods.Count == 0)
            {
                if (hasButtonMethods)
                {
                    phSelectPaymentMethod.Visible  = false;
                    pnlPaymentMethodsError.Visible = false;

                    //no reward points in this case
                    pnlRewardPoints.Visible = false;
                }
                else
                {
                    phSelectPaymentMethod.Visible  = false;
                    pnlPaymentMethodsError.Visible = true;
                    lPaymentMethodsError.Text      = GetLocaleResourceString("Checkout.NoPaymentMethods");

                    //no reward points in this case
                    pnlRewardPoints.Visible = false;
                }
            }
            else if (boundPaymentMethods.Count == 1)
            {
                phSelectPaymentMethod.Visible  = true;
                pnlPaymentMethodsError.Visible = false;
                dlPaymentMethod.DataSource     = boundPaymentMethods;
                dlPaymentMethod.DataBind();

                //select a default payment method
                if (dlPaymentMethod.Items.Count > 0)
                {
                    var tmp1            = dlPaymentMethod.Items[0];
                    var rdPaymentMethod = tmp1.FindControl("rdPaymentMethod") as RadioButton;
                    if (rdPaymentMethod != null)
                    {
                        rdPaymentMethod.Checked = true;
                    }
                    //or you can select it and go to the next step of checkout
                    //but it this case a customer will not be able apply a reward point a select a "button" payment metho
                }
            }
            else
            {
                phSelectPaymentMethod.Visible  = true;
                pnlPaymentMethodsError.Visible = false;
                dlPaymentMethod.DataSource     = boundPaymentMethods;
                dlPaymentMethod.DataBind();

                //select a default payment method
                if (dlPaymentMethod.Items.Count > 0)
                {
                    if (NopContext.Current.User != null &&
                        NopContext.Current.User.LastPaymentMethod != null)
                    {
                        //already selected payment method
                        this.SelectedPaymentMethodId = NopContext.Current.User.LastPaymentMethod.PaymentMethodId;
                    }
                    else
                    {
                        //otherwise, the first payment method
                        var tmp1            = dlPaymentMethod.Items[0];
                        var rdPaymentMethod = tmp1.FindControl("rdPaymentMethod") as RadioButton;
                        if (rdPaymentMethod != null)
                        {
                            rdPaymentMethod.Checked = true;
                        }
                    }
                }
            }
        }
        //To confirm payment
        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                agreeSign = 0;
                //Determine whether to agree to the terms
                if (SettingManager.GetSettingValueBoolean("Checkout.TermsOfServiceEnabled"))
                {
                    if (cbTermsOfService.Checked)
                        agreeSign = 1;
                    else
                        agreeSign = 0;
                }

                //Interpretation of the shipping method
                bool shoppingCartRequiresShipping = ShippingService.ShoppingCartRequiresShipping(Cart);

                if (agreeSign == 0 && SettingManager.GetSettingValueBoolean("Checkout.TermsOfServiceEnabled"))
                {
                    if ((NopContext.Current.User == null || NopContext.Current.User.IsGuest) && CustomerService.AnonymousCheckoutAllowed)
                    {
                        if (shoppingCartRequiresShipping == false)
                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(1,1,1);", true);
                        else
                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(1,1,0);", true);
                    }
                    else
                    {
                        if (shoppingCartRequiresShipping == false)
                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(1,0,1);", true);
                        else
                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(1,0,0);", true);
                    }
                }
                else
                    if (shippingMethodSign == 1 && billingMethodSign == 1)
                    {
                        //If the selected payer address and the address of the consignee or read their address
                        if (ShowBilling.Checked == true)
                        {
                            //Address of customer
                            var shippingAddress = this.ShippingAddress;
                            SelectshippingAddress(shippingAddress);
                            //Billing Address
                            var billingAddress = this.ShippingAddress;
                            SelectbillingAddress(billingAddress);

                        }
                        else
                        {
                            //Customer Address
                            var shippingAddress = this.ShippingAddress;
                            SelectshippingAddress(shippingAddress);
                            //Billing Address
                            var billingAddress = this.BillingAddress;
                            SelectbillingAddress(billingAddress);
                        }

                        //详细付款方式
                        // LoadPaymentControl();//在重新载入 获取具体的支付值
                        if (this.ValidateForm())
                        {
                            this.PaymentInfo = this.GetPaymentInfo();
                            var args1 = new CheckoutStepEventArgs() { PaymentInfoEntered = true };
                            OnCheckoutStepChanged(args1);

                        }

                        //确认
                        try
                        {
                            var paymentInfo = this.PaymentInfoConfirm;
                            //paymentInfo.BillingAddress = NopContext.Current.User.BillingAddress;
                            paymentInfo.BillingAddress = CustomerService.GetAddressById(BillingAddressId);
                            paymentInfo.ShippingAddress = NopContext.Current.User.ShippingAddress;
                            paymentInfo.CustomerLanguage = NopContext.Current.WorkingLanguage;
                            paymentInfo.CustomerCurrency = NopContext.Current.WorkingCurrency;

                            int orderId = 0;
                            string result = OrderService.PlaceOrder(paymentInfo, NopContext.Current.User, out orderId);
                            this.PaymentInfo = null;
                            var order = OrderService.GetOrderById(orderId);
                            if (!String.IsNullOrEmpty(result))
                            {
                                return;
                            }
                            else
                            {
                                PaymentService.PostProcessPayment(order);
                            }
                            var args2 = new CheckoutStepEventArgs() { OrderConfirmed = true };
                            OnCheckoutStepChanged(args2);
                        }
                        catch (Exception exc)
                        {
                            LogService.InsertLog(LogTypeEnum.OrderError, exc.Message, exc);
                        }

                        //一切无误后 跳转到完成页面
                        Response.Redirect("~/checkoutcompleted.aspx");

                    }
                    else
                    {
                        if (shippingMethodSign == 0 && billingMethodSign == 0)
                        {
                            if ((NopContext.Current.User == null || NopContext.Current.User.IsGuest) && CustomerService.AnonymousCheckoutAllowed)
                            {
                                if (shoppingCartRequiresShipping == false)
                                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(2,1,1);", true);
                                else
                                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(2,1,0);", true);
                            }
                            else
                            {
                                if (shoppingCartRequiresShipping == false)
                                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(2,0,1);", true);
                                else
                                    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(2,0,0);", true);
                            }
                        }
                        else
                            if (shippingMethodSign == 0 && billingMethodSign == 1)
                            {
                                if ((NopContext.Current.User == null || NopContext.Current.User.IsGuest) && CustomerService.AnonymousCheckoutAllowed)
                                {
                                    if (shoppingCartRequiresShipping == false)
                                        ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(3,1,1);", true);
                                    else
                                        ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(3,1,0);", true);
                                }
                                else
                                {
                                    if (shoppingCartRequiresShipping == false)
                                        ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(3,0,1);", true);
                                    else
                                        ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(3,0,0);", true);
                                }

                            }
                            else
                                if (shippingMethodSign == 1 && billingMethodSign == 0)
                                {
                                    if ((NopContext.Current.User == null || NopContext.Current.User.IsGuest) && CustomerService.AnonymousCheckoutAllowed)
                                    {
                                        if (shoppingCartRequiresShipping == false)
                                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(4,1,1);", true);
                                        else
                                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(4,1,0);", true);
                                    }
                                    else
                                    {
                                        if (shoppingCartRequiresShipping == false)
                                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(4,0,1);", true);
                                        else
                                            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "alertMessage(4,0,0);", true);
                                    }
                                }
                    }
            }
        }
Ejemplo n.º 44
0
 protected virtual void OnCheckoutStepChanged(CheckoutStepEventArgs e)
 {
     if (handler != null)
     {
         handler(this, e);
     }
 }
        //触发 运送方式,并刷新购物车显示
        protected void ShippingMethod_CheckedChanged(object sender, EventArgs e)
        {
            //如果是匿名访问 隐藏已有地址显示特效
            if ((NopContext.Current.User == null || NopContext.Current.User.IsGuest) && CustomerService.AnonymousCheckoutAllowed)
            {
                AnonymousCheckoutAllowedSign = true;
                ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdateSucceed", "showHideCheckoutAddress(3,0,0);", true);
            }

            var shippingOption = this.SelectedShippingOption;
            if (shippingOption != null)
            {
                NopContext.Current.User.LastShippingOption = shippingOption;
                var args1 = new CheckoutStepEventArgs() { ShippingMethodSelected = true };
                OnCheckoutStepChanged(args1);
                shippingMethodSign = 1;

            }

            //刷新
            OrderSummaryControl.BindData();
            //如果先点击的 返点支付 并且已有的返点总额大于 商品总额 隐藏支付方式
            int rewardPointsBalance = NopContext.Current.User.RewardPointsBalance;
            decimal rewardPointsAmountBase = OrderService.ConvertRewardPointsToAmount(rewardPointsBalance);
            decimal rewardPointsAmount = CurrencyService.ConvertCurrency(rewardPointsAmountBase, CurrencyService.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);
            string totalPrice = OrderSummaryControl.getTotalPriceSummary;
            decimal allTotalPrice = decimal.Parse(totalPrice);
            if (cbUseRewardPoints.Checked == true)
            {
                if (rewardPointsAmount >= allTotalPrice)
                {
                    rewardPointShowHide1.Visible = false;
                    rewardPointShowHide2.Visible = false;
                    billingMethodSign = 1;

                    //payment methods  如果选择的是返点支付  并且返点的价格大于商品的价格 就默认为 store支付  store ID为25
                    int paymentMethodId = 25;
                    var paymentMethod = PaymentService.GetPaymentMethodById(paymentMethodId);
                    if (paymentMethod != null && paymentMethod.IsActive)
                    {
                        NopContext.Current.User.LastPaymentMethodId = paymentMethodId;
                        this.CustomerService.UpdateCustomer(NopContext.Current.User);
                        //NopContext.Current.User = CustomerService.SetLastPaymentMethodId(NopContext.Current.User.CustomerId, paymentMethodId);
                        var args1 = new CheckoutStepEventArgs() { PaymentMethodSelected = true };
                        OnCheckoutStepChanged(args1);
                        billingMethodSign = 1;

                    }

                }
                else
                {
                    rewardPointShowHide1.Visible = true;
                    rewardPointShowHide2.Visible = true;
                }
            }
        }