Example #1
0
        private String GetPaymentProviderTemplates()
        {
            var strRtn = "";

            foreach (var d in _provList)
            {
                var p    = d.Value;
                var key  = p.GetXmlProperty("genxml/textbox/ctrl");
                var prov = PaymentsInterface.Instance(key);
                if (prov != null)
                {
                    var templ = prov.GetTemplate(_cartInfo.PurchaseInfo);
                    if (templ == "")
                    {
                        var msgcode = "noproviderdata_" + NotifyCode.warning.ToString();
                        templ  = "<div>" + key + "</div>";
                        templ += NBrightBuyUtils.GetResxMessage(msgcode);
                    }
                    strRtn += templ;
                }
            }
            return(strRtn);
        }
Example #2
0
        protected override void OnLoad(EventArgs e)
        {
            try
            {
                base.OnLoad(e);

                if (Page.IsPostBack == false)
                {
                    var providerkey = Utils.RequestParam(Context, "provider");
                    if (providerkey != "")
                    {
                        var strOut   = "";
                        var cartInfo = new CartData(PortalSettings.Current.PortalId);
                        if (cartInfo != null)
                        {
                            cartInfo.SaveModelTransQty(); // move qty into trans
                            cartInfo.ConvertToOrder(StoreSettings.Current.DebugMode);
                            var orderData = new OrderData(cartInfo.PurchaseInfo.ItemID);
                            orderData.PaymentProviderKey = providerkey.ToLower(); // provider keys should always be lowecase
                            orderData.SavePurchaseData();
                            PaymentsInterface.Instance(orderData.PaymentProviderKey).RedirectForPayment(orderData);
                        }
                    }
                    else
                    {
                        PageLoad();
                    }
                }
            }
            catch (Exception exc) //Module failed to load
            {
                //display the error on the template (don't want to log it here, prefer to deal with errors directly.)
                var l = new Literal();
                l.Text = exc.ToString();
                Controls.Add(l);
            }
        }
Example #3
0
        public static string GetPaymentUrl()
        {
            try
            {
                var currentcart = new CartData(PortalSettings.Current.PortalId);

                if (currentcart.GetCartItemList().Count > 0)
                {
                    currentcart.SetValidated(true);
                    if (currentcart.EditMode == "E")
                    {
                        currentcart.ConvertToOrder();
                    }
                }
                else
                {
                    currentcart.SetValidated(true);
                }
                currentcart.Save();

                var rtnurl = Globals.NavigateURL(StoreSettings.Current.PaymentTabId);
                if (currentcart.EditMode == "E")
                {
                    // is order being edited, so return to order status after edit.
                    // ONLY if the cartsummry is being displayed to the manager.
                    currentcart.ConvertToOrder();
                    // redirect to back office
                    var param = new string[2];
                    param[0] = "ctrl=orders";
                    param[1] = "eid=" + currentcart.PurchaseInfo.ItemID.ToString("");
                    var strbackofficeTabId = StoreSettings.Current.Get("backofficetabid");
                    var backofficeTabId    = PortalSettings.Current.ActiveTab.TabID;
                    if (Utils.IsNumeric(strbackofficeTabId))
                    {
                        backofficeTabId = Convert.ToInt32(strbackofficeTabId);
                    }
                    rtnurl = Globals.NavigateURL(backofficeTabId, "", param);
                }

                // get payment providers, if only 1 then return payment url.
                if (StoreSettings.Current.GetBool("singlepaymentoption"))
                {
                    var pluginData = new PluginData(PortalSettings.Current.PortalId);
                    var provList   = pluginData.GetPaymentProviders();
                    if (provList.Count() == 1)
                    {
                        foreach (var d in provList)
                        {
                            var p    = d.Value;
                            var key  = p.GetXmlProperty("genxml/textbox/ctrl");
                            var prov = PaymentsInterface.Instance(key);
                            if (prov != null)
                            {
                                rtnurl += "?provider=" + prov.Paymentskey;
                            }
                        }
                    }
                }

                return(rtnurl);
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return("ERROR");
            }
        }
Example #4
0
        override protected void OnInit(EventArgs e)
        {
            base.OnInit(e);

            if (ModSettings.Get("themefolder") == "")  // if we don't have module setting jump out
            {
                rpPaymentGateways.ItemTemplate = new GenXmlTemplate("NO MODULE SETTINGS");
                return;
            }

            try
            {
                var pluginData = new PluginData(PortalSettings.Current.PortalId);
                _provList = pluginData.GetPaymentProviders();
                _cartInfo = new CartData(PortalId);

                var orderid     = Utils.RequestQueryStringParam(Context, "orderid");
                var templOk     = ModSettings.Get("paymentoktemplate");
                var templFail   = ModSettings.Get("paymentfailtemplate");
                var templHeader = "";
                var templFooter = "";
                var templText   = "";

                if ((_provList.Count == 0 || _cartInfo.PurchaseInfo.GetXmlPropertyDouble("genxml/appliedtotal") <= 0) && orderid == "")
                {
                    #region "No Payment providers, so process as a ordering system"

                    var displayTempl = templOk;
                    if (!_cartInfo.IsValidated())
                    {
                        displayTempl = templFail;
                    }

                    rpDetailDisplay.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(ModCtrl.GetTemplateData(ModSettings, displayTempl, Utils.GetCurrentCulture(), DebugMode), ModSettings.Settings(), PortalSettings.HomeDirectory);
                    _templateHeader = (GenXmlTemplate)rpDetailDisplay.ItemTemplate;

                    // we may have voucher discounts that give a zero appliedtotal, so process.
                    var discountprov = DiscountCodeInterface.Instance();
                    if (discountprov != null)
                    {
                        discountprov.UpdatePercentUsage(PortalId, UserId, _cartInfo.PurchaseInfo);
                        discountprov.UpdateVoucherAmount(PortalId, UserId, _cartInfo.PurchaseInfo);
                    }

                    #endregion
                }
                else
                {
                    #region "Payment Details"

                    // display the payment method by default
                    templHeader = ModSettings.Get("paymentordersummary");
                    templFooter = ModSettings.Get("paymentfooter");
                    var templPaymentText = "";
                    var msg = "";
                    if (Utils.IsNumeric(orderid))
                    {
                        // orderid exists, so must be return from bank; Process it!!
                        _orderData = new OrderData(PortalId, Convert.ToInt32(orderid));
                        _prov      = PaymentsInterface.Instance(_orderData.PaymentProviderKey);

                        msg = _prov.ProcessPaymentReturn(Context);
                        if (msg == "")                                                      // no message so successful
                        {
                            _orderData = new OrderData(PortalId, Convert.ToInt32(orderid)); // get the updated order.
                            _orderData.PaymentOk("050");
                            templText = templOk;
                        }
                        else
                        {
                            _orderData = new OrderData(PortalId, Convert.ToInt32(orderid)); // reload the order, becuase the status and typecode may have changed by the payment provider.
                            _orderData.AddAuditMessage(msg, "paymsg", "payment.ascx", "False");
                            _orderData.Save();
                            templText = templFail;
                        }
                        templFooter = ""; // return from bank, hide footer
                    }
                    else
                    {
                        // not returning from bank, so display list of payment providers.
                        rpPaymentGateways.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(GetPaymentProviderTemplates(), ModSettings.Settings(), PortalSettings.HomeDirectory);
                    }

                    if (templText == "")
                    {
                        templText = templHeader;                  // if we are NOT returning from bank, then display normal header summary template
                    }
                    templPaymentText = ModCtrl.GetTemplateData(ModSettings, templText, Utils.GetCurrentCulture(), DebugMode);

                    rpDetailDisplay.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(templPaymentText, ModSettings.Settings(), PortalSettings.HomeDirectory);
                    _templateHeader = (GenXmlTemplate)rpDetailDisplay.ItemTemplate;

                    if (templFooter != "")
                    {
                        var templPaymentFooterText = ModCtrl.GetTemplateData(ModSettings, templFooter, Utils.GetCurrentCulture(), DebugMode);
                        rpDetailFooter.ItemTemplate = NBrightBuyUtils.GetGenXmlTemplate(templPaymentFooterText, ModSettings.Settings(), PortalSettings.HomeDirectory);
                    }

                    #endregion
                }


                // insert page header text
                NBrightBuyUtils.IncludePageHeaders(ModCtrl, ModuleId, Page, _templateHeader, ModSettings.Settings(), null, DebugMode);
            }
            catch (Exception exc)
            {
                //display the error on the template (don;t want to log it here, prefer to deal with errors directly.)
                var l = new Literal();
                l.Text = exc.ToString();
                phData.Controls.Add(l);
            }
        }