Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            InitializeEntitySpaces();
            PortalSettings portalSettings = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();

            PortalId = portalSettings.PortalId;


            pnlOrderDetails.Visible = false;
            RegisterSkinCSS(portalSettings.ActiveTab.SkinPath);

            var user = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();

            UserIsAdmin = user.IsSuperUser || user.IsInRole(portalSettings.AdministratorRoleName);

            if (LoadOrder() && UserIsAdmin)
            {
                pnlOrderDetails.Visible = true;
                var             storeContext = new StoreContext(Request);
                DataModel.Store store        = storeContext.CurrentStore;

                StoreName        = store.Name;
                StoreStreet      = store.GetSetting(StoreSettingNames.StoreAddressStreet);
                StoreCity        = store.GetSetting(StoreSettingNames.StoreAddressCity);
                StoreRegion      = store.GetSetting(StoreSettingNames.StoreAddressRegion);
                StorePostalCode  = store.GetSetting(StoreSettingNames.StoreAddressPostalCode);
                StoreCountryCode = store.GetSetting(StoreSettingNames.StoreAddressCountryCode);
            }
        }
        public static PaymentProvider GetProvider(PaymentProviderName providerName, DataModel.Store store)
        {
            switch (providerName)
            {
            case PaymentProviderName.PayLater:
                return(new PayLaterPaymentProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.CardCaptureOnly:
                return(new CardCaptureOnlyPaymentProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.PayPalStandard:
                return(new PayPalStandardProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.PayPalDirectPayment:
                return(new PayPalDirectPaymentProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.PayPalExpressCheckout:
                return(new PayPalExpressCheckoutPaymentProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.AuthorizeNetAim:
                return(new AuthorizeNetAimProvider(store.GetPaymentProviderConfig(providerName)));

            default:
                throw new ArgumentException("PaymentProvider Not Found: " + providerName.ToString());
            }
        }
        private void SaveSettings()
        {
            DataModel.Store store = new DataModel.Store();
            if (store.LoadByPrimaryKey(StoreContext.CurrentStore.Id.Value))
            {
                store.UpdateSetting(StoreSettingNames.CatalogDefaultSortOrder, ddlDefaultSortOrder.SelectedValue);
                store.UpdateSetting(StoreSettingNames.CatalogMaxResultsPerPage, WA.Parser.ToInt(txtMaxResultsPerPage.Text).GetValueOrDefault(100).ToString());

                Response.Redirect(StoreUrls.AdminWithFlash(ModuleDefs.Admin.Views.AdminHome, "Catalog Settings saved successfully"));
            }
        }
Пример #4
0
        //protected void Page_Load(object sender, EventArgs e)
        //{
        //    if(!IsPostBack)
        //    {

        //    }
        //}

        protected string GetCustomControlToLoad()
        {
            string slug = RequestHelper.GetSlug();

            // Check for Page slugs
            //switch (storeContext.PageSlug)
            switch (slug)
            {
            case "Cart":
                return("Cart/Cart.ascx");

            case "LoginPrompt":
                return("Checkout/LoginPrompt.ascx");

            case "Checkout-Billing":
                return("Checkout/CheckoutBilling.ascx");

            case "Checkout-Shipping":
                return("Checkout/CheckoutShipping.ascx");

            case "Checkout-ShippingMethod":
                return("Checkout/CheckoutShippingMethod.ascx");

            case "Checkout-Payment":
                return("Checkout/CheckoutPayment.ascx");

            case "Checkout-Review":
                return("Checkout/CheckoutReview.ascx");

            case "Checkout-Complete":
                return("Checkout/CheckoutComplete.ascx");

            case "Catalog-Product":
                return("Catalog/CatalogProduct.ascx");
            }

            DataModel.Store currentStore = StoreContext.GetCurrentStore(Request);
            //if (storeContext.Product != null || WA.Parser.ToInt(Request.QueryString["product"]).HasValue)
            if (Product.SlugExists(currentStore.Id.Value, slug) || WA.Parser.ToInt(Request.QueryString["product"]).HasValue)
            {
                return("Catalog/CatalogProduct.ascx");
            }

            ////if (storeContext.Category != null)
            //if (!string.IsNullOrEmpty(categorySlug))
            //{
            //    return "Catalog/CatalogCategory.ascx";
            //}

            return("Catalog/CatalogCategory.ascx");
        }
        private void SaveStoreSettings()
        {
            DataModel.Store store = new DataModel.Store();
            if (store.LoadByPrimaryKey(StoreContext.CurrentStore.Id.Value))
            {
                store.Name = txtStoreName.Text;
                store.Save();


                store.UpdateSetting(StoreSettingNames.IncludeJQueryUi, chkLoadJQueryUi.Checked.ToString());

                store.UpdateSetting(StoreSettingNames.OrderCompletedEmailRecipient, txtOrderCompletedEmailRecipient.Text);
                store.UpdateSetting(StoreSettingNames.CustomerServiceEmailAddress, txtCustomerServiceEmail.Text);
                store.UpdateSetting(StoreSettingNames.OrderNumberPrefix, txtOrderNumberPrefix.Text);
                store.UpdateSetting(StoreSettingNames.DefaultCountryCode, ddlDefaultCountryCode.SelectedValue);

                store.UpdateSetting(StoreSettingNames.CurrencyCode, ddlCurrency.SelectedValue);
                store.UpdateSetting(StoreSettingNames.ShowPrices, chkShowPrices.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.AcceptedCreditCards, chklAcceptedCreditCards.GetSelectedValues().ToDelimitedString(","));

                store.UpdateSetting(StoreSettingNames.StorePhoneNumber, txtStorePhone.Text);
                store.UpdateSetting(StoreSettingNames.StoreAddressStreet, txtStoreStreet.Text);
                store.UpdateSetting(StoreSettingNames.StoreAddressCity, txtStoreCity.Text);
                store.UpdateSetting(StoreSettingNames.StoreAddressRegion, txtStoreRegion.Text);
                store.UpdateSetting(StoreSettingNames.StoreAddressPostalCode, txtStorePostalCode.Text);
                store.UpdateSetting(StoreSettingNames.StoreAddressCountryCode, ddlStoreCountryCode.SelectedValue);

                store.UpdateSetting(StoreSettingNames.EnableCheckout, chkEnableCheckout.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.CheckoutAllowAnonymous, chkCheckoutAllowAnonymous.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.CheckoutShowCreateAccountLink, chkCheckoutShowCreateAccountLink.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.ShowPriceAndQuantityInCatalog, chkQuantityAndPrice.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.RequireOrderNotes, chkRequireOrderNotes.Checked.ToString());

                store.UpdateSetting(StoreSettingNames.ShowCouponBox, chkShowCouponBox.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.ShowShippingEstimate, chkShowShippingEstimateBox.Checked.ToString());

                store.UpdateSetting(StoreSettingNames.SendPaymentCompleteEmail, chkSendPaymentCompleteEmail.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.SendOrderReceivedEmail, chkSendOrderReceivedEmail.Checked.ToString());

                store.UpdateSetting(StoreSettingNames.TaxShipping, chkTaxShipping.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.ForceSslCheckout, chkForceSslCheckout.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.DisplaySiteCredit, chkDisplaySiteCredit.Checked.ToString());
                store.UpdateSetting(StoreSettingNames.UrlToPostCompletedOrder, txtUrlToPostOrder.Text);

                // re-load the current store from the DB
                StoreContext.SetCurrentStore(store.Id.Value);

                Response.Redirect(StoreUrls.AdminWithFlash(ModuleDefs.Admin.Views.StoreSettings, "Store settings saved successfully"));
            }
        }
        private void LoadPaymentProviders()
        {
            DataModel.Store store = StoreContext.CurrentStore;

            // StoreContext.CurrentStore.GetOnsiteCreditCardPaymentProvider() == PaymentProviderName.OfflinePayment
            // StoreContext.CurrentStore.IsPaymentProviderEnabled(PaymentProviderName.AuthorizeNetAim)

            // ON-SITE
            chkPayLater.Checked        = store.IsPaymentProviderEnabled(PaymentProviderName.PayLater);
            chkCardCaptureOnly.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.CardCaptureOnly);
            chkAuthorizeNetAim.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.AuthorizeNetAim);
            chkPayPalDirect.Checked    = store.IsPaymentProviderEnabled(PaymentProviderName.PayPalDirectPayment);

            PayLaterPaymentProvider billMeLaterProvider = new PayLaterPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayLater));

            txtPayLaterDisplayText.Text          = billMeLaterProvider.DisplayText;
            txtPayLaterCustomerInstructions.Text = billMeLaterProvider.CustomerInstructions;

            AuthorizeNetAimProvider authorizeNetAimProvider = new AuthorizeNetAimProvider(store.GetPaymentProviderConfig(PaymentProviderName.AuthorizeNetAim));

            chkAuthorizeNetAimTestGateway.Checked      = authorizeNetAimProvider.IsTestGateway;
            chkAuthorizeNetAimTestTransactions.Checked = authorizeNetAimProvider.IsTestTransactions;
            txtAuthorizeNetAimApiLoginId.Text          = authorizeNetAimProvider.ApiLoginId;
            txtAuthorizeNetAimTransactionKey.Text      = authorizeNetAimProvider.TransactionKey;

            PayPalDirectPaymentProvider payPalDirectPayment = new PayPalDirectPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalDirectPayment));

            chkPayPalDirectPaymentIsSandbox.Checked = payPalDirectPayment.IsSandbox;
            txtPayPalDirectPaymentApiUsername.Text  = payPalDirectPayment.ApiUsername;
            txtPayPalDirectPaymentApiPassword.Text  = payPalDirectPayment.ApiPassword;
            txtPayPalDirectPaymentApiSignature.Text = payPalDirectPayment.ApiSignature;

            // OFF-SITE
            chkPayPalStandard.Checked = store.IsPaymentProviderEnabled(PaymentProviderName.PayPalStandard);
            chkPayPalExpress.Checked  = store.IsPaymentProviderEnabled(PaymentProviderName.PayPalExpressCheckout);

            PayPalStandardProvider payPalStandard = new PayPalStandardProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalStandard));

            chkPayPalStandardIsSandbox.Checked           = payPalStandard.IsSandbox;
            rdoPayPalStandardShippingLogic.SelectedValue = payPalStandard.ShippingLogic;
            txtPayPalStandardEmail.Text = payPalStandard.EmailAddress;

            PayPalExpressCheckoutPaymentProvider payPalExpressCheckout = new PayPalExpressCheckoutPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalExpressCheckout));

            chkPayPalExpressCheckoutIsSandbox.Checked = payPalExpressCheckout.IsSandbox;
            txtPayPalExpressCheckoutApiUsername.Text  = payPalExpressCheckout.ApiUsername;
            txtPayPalExpressCheckoutApiPassword.Text  = payPalExpressCheckout.ApiPassword;
            txtPayPalExpressCheckoutApiSignature.Text = payPalExpressCheckout.ApiSignature;
        }
        private void LoadSettings()
        {
            DataModel.Store store = StoreContext.CurrentStore;

            //txtOrderCompletedEmailRecipient.Text = store.GetSetting(StoreSettingNames.OrderCompletedEmailRecipient);
            List <ProductSortByField> sortFields = Product.GetSortByFields();

            ddlDefaultSortOrder.DataSource     = sortFields;
            ddlDefaultSortOrder.DataValueField = "DisplayName";
            ddlDefaultSortOrder.DataTextField  = "DisplayName";
            ddlDefaultSortOrder.DataBind();
            string defaultSort = store.GetSetting(StoreSettingNames.CatalogDefaultSortOrder);

            ddlDefaultSortOrder.TrySetSelectedValue(defaultSort);

            txtMaxResultsPerPage.Text = WA.Parser.ToInt(store.GetSetting(StoreSettingNames.CatalogMaxResultsPerPage)).GetValueOrDefault(100).ToString();
        }
Пример #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Context.Trace.Write("PayPalIpnHandler called");

            Exceptions.LogException(new Exception("PayPalIpnHandler Called with keys: " + Request.Params.AllKeys.ToCsv()));

            InitializeEntitySpaces();


            int?orderId = WA.Parser.ToInt(Request.Params["custom"]);

            Exceptions.LogException(new Exception("PayPalIpnHandler : Order ID = " + orderId));
            Order pendingOrder = Order.GetOrder(orderId.GetValueOrDefault(-1));

            if (pendingOrder != null)
            {
                Exceptions.LogException(new Exception("PayPalIpnHandler : Found pending order"));
                DataModel.Store        store          = pendingOrder.UpToStoreByStoreId;
                StoreContext           storeContext   = new StoreContext(Request, store.Id.Value);
                PayPalStandardProvider payPalStandard = new PayPalStandardProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalStandard));
                if (payPalStandard.IsIpnResponse(Request))
                {
                    Exceptions.LogException(new Exception("PayPalIpnHandler : Is Valid IPN request, processing IPN variables..."));
                    OrderController orderController = new OrderController(storeContext);
                    CheckoutResult  checkoutResult  = orderController.CheckoutWithPayPalStandardCheckout(Request);
                }
                else
                {
                    StringBuilder request = new StringBuilder();
                    foreach (var key in Request.Params.AllKeys)
                    {
                        request.AppendFormat("{0} = {1} <br />{2}", key, Request.Params[key], Environment.NewLine);
                    }

                    Exceptions.LogException(new Exception("PayPalIpnHandler : NOT AN IPN RESPONSE. Request = " + request.ToString()));
                }
            }
            else
            {
                //Exceptions.LogException(new Exception("PayPalIpnHandler : pendingOrder IS NULL!"));
            }
        }
        private void FillListControls()
        {
            DataModel.Store store = StoreContext.CurrentStore;
            checkoutOrderInfo.ReCalculateOrderTotals();

            //---- CC Types
            string creditCardsAccepted = store.GetSetting(StoreSettingNames.AcceptedCreditCards);

            if (!string.IsNullOrEmpty(creditCardsAccepted))
            {
                string[] cardTypes = creditCardsAccepted.Split(',');
                ddlCCType.Items.Clear();
                foreach (var card in cardTypes)
                {
                    string[] pair = card.Split('-');
                    if (pair.Length == 1)
                    {
                        ddlCCType.Items.Add(new ListItem()
                        {
                            Value = pair[0], Text = pair[0]
                        });
                    }
                    else if (pair.Length == 2)
                    {
                        ddlCCType.Items.Add(new ListItem()
                        {
                            Value = pair[0], Text = pair[1]
                        });
                    }
                }
                ddlCCType.Items.Insert(0, "");
            }
            else
            {
                //List<string> cardTypes = new List<string>(WA.Enum<CreditCardType>.GetNames());
                //cardTypes.Remove(CreditCardType.UNKNOWN.ToString());
                //cardTypes.Remove(CreditCardType.PayPal.ToString());
                //ddlCCType.Items.Clear();
                //ddlCCType.Items.AddRange(cardTypes.ConvertAll(s => new ListItem() { Text = s, Value = s }).ToArray());
                //ddlCCType.Items.Insert(0, "");
                msgFlash.InnerHtml = "<ul><li>No credit cards accepted. Please choose a different payment method.</li></ul>";
                msgFlash.Visible   = true;
            }

            //---- CC Expire Year
            ddlCCExpireYear.Items.Clear();
            ddlCCExpireYear.Items.Add("");
            int maxYear = DateTime.Now.Year + 12;

            for (int y = DateTime.Now.Year; y <= maxYear; y++)
            {
                ddlCCExpireYear.Items.Add(new ListItem()
                {
                    Text = y.ToString(), Value = y.ToString()
                });
            }

            //---- Payment Methods
            PayLaterPaymentProvider billMeLaterProvider = new PayLaterPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayLater));

            liBillMeLater.Visible          = billMeLaterProvider.IsEnabled;
            lblPayLater.InnerHtml          = billMeLaterProvider.DisplayText;
            payLaterInstructions.InnerHtml = billMeLaterProvider.CustomerInstructions.NewlineToBr();
            liPayPalExpressCheckoutPaymentMethod.Visible = store.IsPaymentProviderEnabled(PaymentProviderName.PayPalExpressCheckout);
            liCreditCardCapture.Visible = store.IsPaymentProviderEnabled(PaymentProviderName.CardCaptureOnly) ||
                                          store.IsPaymentProviderEnabled(PaymentProviderName.AuthorizeNetAim) ||
                                          store.IsPaymentProviderEnabled(PaymentProviderName.PayPalDirectPayment);
        }
Пример #10
0
        private void LoadStoreSettings()
        {
            DataModel.Store store = StoreContext.CurrentStore;

            txtStoreName.Text = store.Name;
            txtOrderCompletedEmailRecipient.Text = store.GetSetting(StoreSettingNames.OrderCompletedEmailRecipient);
            txtCustomerServiceEmail.Text         = store.GetSetting(StoreSettingNames.CustomerServiceEmailAddress);
            txtOrderNumberPrefix.Text            = store.GetSetting(StoreSettingNames.OrderNumberPrefix);

            ddlDefaultCountryCode.Items.Clear();
            ddlDefaultCountryCode.Items.AddRange(DnnHelper.GetCountryListItems().ToArray());
            ddlDefaultCountryCode.Items.Insert(0, "");
            ddlDefaultCountryCode.TrySetSelectedValue(store.GetSetting(StoreSettingNames.DefaultCountryCode));

            ddlCurrency.Items.Clear();
            ddlCurrency.Items.AddRange(CurrencyCollection.All().Select(x => new ListItem()
            {
                Value = x.Code, Text = string.Format("{0} - {1}", x.Code, x.Description)
            }).ToArray());
            ddlCurrency.Items.Insert(0, new ListItem());
            ddlCurrency.SelectedValue = store.GetSetting(StoreSettingNames.CurrencyCode);

            string ccTypes = store.GetSetting(StoreSettingNames.AcceptedCreditCards) ?? string.Empty;

            if (string.IsNullOrEmpty(ccTypes))
            {
                chklAcceptedCreditCards.SetAllSelected();
            }
            else
            {
                string[] ccTypesArray = ccTypes.Split(',');
                chklAcceptedCreditCards.SetSelectedValues(ccTypesArray);
            }

            chkLoadJQueryUi.Checked = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.IncludeJQueryUi)).GetValueOrDefault(true);

            // Store Location / Address
            txtStorePhone.Text      = store.GetSetting(StoreSettingNames.StorePhoneNumber);
            txtStoreStreet.Text     = store.GetSetting(StoreSettingNames.StoreAddressStreet);
            txtStoreCity.Text       = store.GetSetting(StoreSettingNames.StoreAddressCity);
            txtStoreRegion.Text     = store.GetSetting(StoreSettingNames.StoreAddressRegion);
            txtStorePostalCode.Text = store.GetSetting(StoreSettingNames.StoreAddressPostalCode);
            ddlStoreCountryCode.Items.Clear();
            ddlStoreCountryCode.Items.AddRange(DnnHelper.GetCountryListItems().ToArray());
            ddlStoreCountryCode.Items.Insert(0, "");
            ddlStoreCountryCode.TrySetSelectedValue(store.GetSetting(StoreSettingNames.StoreAddressCountryCode));

            chkCheckoutAllowAnonymous.Checked        = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.CheckoutAllowAnonymous)).GetValueOrDefault(true);
            chkCheckoutShowCreateAccountLink.Checked = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.CheckoutShowCreateAccountLink)).GetValueOrDefault(true);

            chkTaxShipping.Checked = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.TaxShipping)).GetValueOrDefault(true);

            chkSendPaymentCompleteEmail.Checked = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.SendPaymentCompleteEmail)).GetValueOrDefault(true);
            chkSendOrderReceivedEmail.Checked   = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.SendOrderReceivedEmail)).GetValueOrDefault(true);

            chkShowShippingEstimateBox.Checked = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.ShowShippingEstimate)).GetValueOrDefault(true);
            chkShowCouponBox.Checked           = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.ShowCouponBox)).GetValueOrDefault(true);
            chkQuantityAndPrice.Checked        = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.ShowPriceAndQuantityInCatalog)).GetValueOrDefault(false);

            chkShowPrices.Checked        = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.ShowPrices)).GetValueOrDefault(true);
            chkEnableCheckout.Checked    = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.EnableCheckout)).GetValueOrDefault(true);
            chkRequireOrderNotes.Checked = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.RequireOrderNotes)).GetValueOrDefault(false);

            chkForceSslCheckout.Checked  = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.ForceSslCheckout)).GetValueOrDefault(false);
            chkDisplaySiteCredit.Checked = WA.Parser.ToBool(store.GetSetting(StoreSettingNames.DisplaySiteCredit)).GetValueOrDefault(true);
            txtUrlToPostOrder.Text       = store.GetSetting(StoreSettingNames.UrlToPostCompletedOrder);
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            DataModel.Store store = StoreContext.CurrentStore;

            //PaymentProviderName onSitePaymentProvider = WA.Enum<PaymentProviderName>.TryParseOrDefault(Request.Form["enabledOnSiteProvider"], PaymentProviderName.UNKNOWN);
            //PaymentProviderName offSitePaymentProvider = WA.Enum<PaymentProviderName>.TryParseOrDefault(Request.Form["enabledOffSiteProvider"], PaymentProviderName.UNKNOWN);

            if (!onSiteCheckboxes.Exists(x => x.Checked) && !offSiteCheckboxes.Exists(x => x.Checked))
            {
                ShowFlash("<span style='color: Red;'>ERROR - Please choose at least one payment provider.</span>");
                return;
            }

            if (chkAuthorizeNetAim.Checked && chkPayPalDirect.Checked)
            {
                ShowFlash("<span style='color: Red;'>ERROR - Please choose either Authorize.Net OR PayPal Pro (both cannot be selected)</span>");
                return;
            }
            if (chkPayPalStandard.Checked && chkPayPalExpress.Checked)
            {
                ShowFlash("<span style='color: Red;'>ERROR - Please choose either PayPal Standard OR PayPal Express Checkout (both cannot be selected)</span>");
                return;
            }

            //--- ON-Site Payment Providers

            PayLaterPaymentProvider billMeLaterPaymentProvider = new PayLaterPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayLater));

            billMeLaterPaymentProvider.IsEnabled            = chkPayLater.Checked;
            billMeLaterPaymentProvider.DisplayText          = txtPayLaterDisplayText.Text;
            billMeLaterPaymentProvider.CustomerInstructions = txtPayLaterCustomerInstructions.Text;
            store.UpdatePaymentProviderConfig(billMeLaterPaymentProvider.GetConfiguration());

            CardCaptureOnlyPaymentProvider cardCaptureOnlyPaymentProvider = new CardCaptureOnlyPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.CardCaptureOnly));

            cardCaptureOnlyPaymentProvider.IsEnabled = chkCardCaptureOnly.Checked;
            store.UpdatePaymentProviderConfig(cardCaptureOnlyPaymentProvider.GetConfiguration());

            AuthorizeNetAimProvider authorizeNetAimProvider = new AuthorizeNetAimProvider(store.GetPaymentProviderConfig(PaymentProviderName.AuthorizeNetAim));

            authorizeNetAimProvider.IsEnabled          = chkAuthorizeNetAim.Checked;
            authorizeNetAimProvider.IsTestGateway      = chkAuthorizeNetAimTestGateway.Checked;
            authorizeNetAimProvider.IsTestTransactions = chkAuthorizeNetAimTestTransactions.Checked;
            authorizeNetAimProvider.ApiLoginId         = txtAuthorizeNetAimApiLoginId.Text;
            authorizeNetAimProvider.TransactionKey     = txtAuthorizeNetAimTransactionKey.Text;
            store.UpdatePaymentProviderConfig(authorizeNetAimProvider.GetConfiguration());

            PayPalDirectPaymentProvider payPalDirectPayment = new PayPalDirectPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalDirectPayment));

            payPalDirectPayment.IsEnabled    = chkPayPalDirect.Checked;
            payPalDirectPayment.IsSandbox    = chkPayPalDirectPaymentIsSandbox.Checked;
            payPalDirectPayment.ApiUsername  = txtPayPalDirectPaymentApiUsername.Text;
            payPalDirectPayment.ApiPassword  = txtPayPalDirectPaymentApiPassword.Text;
            payPalDirectPayment.ApiSignature = txtPayPalDirectPaymentApiSignature.Text;
            store.UpdatePaymentProviderConfig(payPalDirectPayment.GetConfiguration());


            //--- OFF-Site Payment Providers

            PayPalStandardProvider payPalStandard = new PayPalStandardProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalStandard));

            payPalStandard.IsEnabled     = chkPayPalStandard.Checked;
            payPalStandard.IsSandbox     = chkPayPalStandardIsSandbox.Checked;
            payPalStandard.ShippingLogic = rdoPayPalStandardShippingLogic.SelectedValue;
            payPalStandard.EmailAddress  = txtPayPalStandardEmail.Text;
            store.UpdatePaymentProviderConfig(payPalStandard.GetConfiguration());

            PayPalExpressCheckoutPaymentProvider payPalExpressCheckout = new PayPalExpressCheckoutPaymentProvider(store.GetPaymentProviderConfig(PaymentProviderName.PayPalExpressCheckout));

            payPalExpressCheckout.IsEnabled    = chkPayPalExpress.Checked;
            payPalExpressCheckout.IsSandbox    = chkPayPalExpressCheckoutIsSandbox.Checked;
            payPalExpressCheckout.ApiUsername  = txtPayPalExpressCheckoutApiUsername.Text;
            payPalExpressCheckout.ApiPassword  = txtPayPalExpressCheckoutApiPassword.Text;
            payPalExpressCheckout.ApiSignature = txtPayPalExpressCheckoutApiSignature.Text;
            store.UpdatePaymentProviderConfig(payPalExpressCheckout.GetConfiguration());

            Response.Redirect(StoreUrls.AdminWithFlash(ModuleDefs.Admin.Views.PaymentMethods, "Payment Settings Saved Successfully"));
        }