private OrderInfo UpdateOrderStatus(int orderID, OrderInfo.OrderStatusList orderStatus)
        {
            OrderController orderController = new OrderController();
            OrderInfo order = orderController.GetOrder(orderID);

            switch (orderStatus)
            {
                case OrderInfo.OrderStatusList.Cancelled:
                    order.OrderStatusID = 6;
                    break;
                case OrderInfo.OrderStatusList.Paid:
                    order.OrderStatusID = 7;
                    break;
            }

            orderController.UpdateOrder(order.OrderID, order.OrderDate, order.OrderNumber, order.ShippingAddressID, order.BillingAddressID, order.Tax, order.ShippingCost, true, order.OrderStatusID, order.CustomerID);

            return order;
        }
        public TransactionResult ProcessTransaction(IAddressInfo shipping, IAddressInfo billing, 
			OrderInfo orderInfo, object transDetails)
        {
            TransactionResult result = new TransactionResult();

            // Check data before performing transaction
            AuthNetSettings settings = new AuthNetSettings(_gatewaySettings);
            if ((settings == null) || (!settings.IsValid()))
            {
                result.Succeeded = false;
                result.Message = "ErrorPaymentOption";
                return result;
            }

            if (billing == null)
            {
                result.Succeeded = false;
                result.Message = "ErrorBillingAddress";
                return result;
            }

            TransactionDetails trans = new TransactionDetails(transDetails as string);
            if ((trans == null) || (!trans.IsValid()))
            {
                result.Succeeded = false;
                result.Message = "ErrorCardInformation";
                return result;
            }

            // Gather transaction information
            string url = settings.GatewayURL;
            string firstName = string.Empty;
            string lastName = trans.NameOnCard;
            if (lastName.IndexOf(" ") >= 0)
            {
                firstName = lastName.Substring(0, lastName.IndexOf(" ")).Trim();
                lastName = lastName.Substring(lastName.LastIndexOf(" ")).Trim();
            }

            string address = billing.Address1 + " " + billing.Address2;
            address = address.Trim();

            NameValueCollection NVCol = new NameValueCollection();

            //NVCol.Add("x_version",				settings.Version);
            NVCol.Add("x_delim_data",			"True");
            NVCol.Add("x_relay_response",       "False");
            NVCol.Add("x_login",				settings.Username);
            NVCol.Add("x_tran_key",				settings.Password);
            NVCol.Add("x_test_request",			settings.IsTest.ToString());
            NVCol.Add("x_delim_char",			"~");
            NVCol.Add("x_encap_char",			"'");

            NVCol.Add("x_first_name",			firstName);
            NVCol.Add("x_last_name",			lastName);
            NVCol.Add("x_company",				"");
            NVCol.Add("x_address",				address);
            NVCol.Add("x_city",					billing.City);
            NVCol.Add("x_state",				billing.RegionCode);
            NVCol.Add("x_zip",					billing.PostalCode);
            NVCol.Add("x_country",				billing.CountryCode);
            NVCol.Add("x_phone",				billing.Phone1);
            NVCol.Add("x_invoice_num",			orderInfo.OrderID.ToString());

            NVCol.Add("x_amount",				orderInfo.OrderTotal.ToString());
            NVCol.Add("x_method",				"CC");
            NVCol.Add("x_card_num",				trans.CardNumber);
            NVCol.Add("x_card_code",			trans.VerificationCode.ToString());
            NVCol.Add("x_exp_date",				trans.ExpirationMonth.ToString() + "/" + trans.ExpirationYear.ToString());
            NVCol.Add("x_recurring_billing",	"NO");
            NVCol.Add("x_type",					settings.Capture.ToString());

            // Perform transaction
            try
            {
                Encoding enc = Encoding.GetEncoding(1252);
                StreamReader loResponseStream = new StreamReader(PostEx(url, NVCol).GetResponseStream(), enc);

                string lcHtml = loResponseStream.ReadToEnd();
                loResponseStream.Close();

                string[] resultArray = Microsoft.VisualBasic.Strings.Split(lcHtml.TrimStart("'".ToCharArray()), "'~'", -1, Microsoft.VisualBasic.CompareMethod.Binary);

                //TODO: What transaction details to return???
                result.Succeeded = (resultArray[0] == "1");
                result.Message = resultArray[3];
            }
            catch (Exception ex)
            {
                //Return error
                string[] resultArray = Microsoft.VisualBasic.Strings.Split("2|0|0|No Connection Available", "|", -1, Microsoft.VisualBasic.CompareMethod.Binary);

                //TODO: What transaction details to return???
                result.Succeeded = false;
                result.Message = ex.Message;
                //result.Message = resultArray[3];
            }

            return result;
        }
Exemple #3
0
 /// <summary>
 /// This informs the checkout controls that the order has been updated.
 /// </summary>
 /// <param name="orderInfo"></param>
 private void updateCheckoutOrder(OrderInfo orderInfo)
 {
     if (orderInfo != null)
     {
         this.taxControl.OrderInfo = orderInfo;
         this.shippingControl.OrderInfo = orderInfo;
         updateCartTotal(orderInfo);
     }
     else
     {
         //A null order should NOT be allowed to checkout, so redirect the tab id without specifying the checkout control.
         if (Request.QueryString["PayPalExit"] == null)
         {
             HttpContext.Current.Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.ActiveTab.TabID), true);
         }
     }
 }
        private void SetupPayPalFields(OrderInfo orderInfo)
        {
            IAddressInfo shippingAddress = getShipToAddress(orderInfo.ShippingAddressID);
            IAddressInfo billingAddress = getBillToAddress(orderInfo.BillingAddressID);

            GatewayController controller = new GatewayController(Server.MapPath(ModulePath));
            GatewayInfo gateway = controller.GetGateway(storeInfo.GatewayName);

            PayPalSettings _settings = new PayPalSettings(gateway.GetSettings(PortalId));

            // Ajouté pour la localisation
            CultureInfo ci_enUS = new CultureInfo("en-US");

            //_verificationURL = _settings.UseSandbox ? _sandboxVerificationURL : _liveVerificationURL;
            //_paymentURL = _settings.UseSandbox ? _sandboxPaymentURL : _livePaymentURL;
            _verificationURL = _settings.UseSandbox ? _sandboxVerificationURL : _settings.VerificationURL;
            _paymentURL = _settings.UseSandbox ? _sandboxPaymentURL : _settings.PaymentURL;

            //Set the paypal url as form target
            pnlPayPalTransfer.Visible = true;
            pnlOrderDetails.Visible = false;
            btnGoToPayPal.PostBackUrl = _paymentURL;
            paypalimage2.ImageUrl = _settings.ButtonURL;

            string returnURL = Request.Url + "&PayPalExit=return";
            string cancelURL = Request.Url + "&PayPalExit=cancel";
            string notifyURL = Request.Url + "&PayPalExit=notify";

            AddHiddenField("cmd", "_cart");
            AddHiddenField("upload", "1");
            AddHiddenField("business", _settings.PayPalID);
            AddHiddenField("handling_cart", orderInfo.ShippingCost.ToString("0.00", ci_enUS));
            //AddHiddenField("handling_cart", orderInfo.ShippingCost.ToString("0.00"));
            AddHiddenField("charset", _settings.Charset);
            AddHiddenField("currency_code", _settings.Currency);
            AddHiddenField("invoice", orderInfo.OrderID.ToString());
            AddHiddenField("return", returnURL);
            AddHiddenField("cancel_return", cancelURL);
            AddHiddenField("notify_url", notifyURL);
            AddHiddenField("rm", "2");
            AddHiddenField("lc", _settings.Lc);
            //AddHiddenField("lc", "GB");
            _Message = Localization.GetString("PayPalReturnTo", this.LocalResourceFile);
            AddHiddenField("cbt", string.Format(_Message, PortalSettings.PortalName));
            //AddHiddenField("cbt", "Back to " + PortalSettings.PortalName);

            if (orderInfo.Tax > 0)
            {
                AddHiddenField("tax_cart", orderInfo.Tax.ToString("0.00", ci_enUS));
                //AddHiddenField("tax_cart", orderInfo.Tax.ToString("0.00"));
            }

            //Cart Contents...
            OrderController orderController = new OrderController();
            ArrayList cartItems = orderController.GetOrderDetails(orderInfo.OrderID);
            int itemNumber = 1;
            foreach (OrderDetailsInfo itemInfo in cartItems)
            {
                AddHiddenField("item_name_" + itemNumber.ToString(), itemInfo.ModelName);
                AddHiddenField("quantity_" + itemNumber.ToString(), itemInfo.Quantity.ToString());
                AddHiddenField("amount_" + itemNumber.ToString(), itemInfo.UnitCost.ToString("0.00", ci_enUS));
                //AddHiddenField("amount_" + itemNumber.ToString(), itemInfo.UnitCost.ToString("0.00"));
                itemNumber++;
            }

            //Customer Address...
            AddHiddenField("email", UserInfo.Membership.Email);
            AddHiddenField("first_name", GetFirstName(billingAddress.Name));
            AddHiddenField("last_name", GetSurname(billingAddress.Name));
            AddHiddenField("address1", billingAddress.Address1);
            AddHiddenField("address2", billingAddress.Address2);
            AddHiddenField("city", billingAddress.City);
            AddHiddenField("zip", billingAddress.PostalCode);
            AddHiddenField("country", (billingAddress.CountryCode.Equals("United Kingdom") ? "GB" : billingAddress.CountryCode));

            AddHiddenField("business_cs_email", UserInfo.Membership.Email);
            AddHiddenField("business_address1", billingAddress.Address1);
            AddHiddenField("business_address2", billingAddress.Address2);
            AddHiddenField("business_city", billingAddress.City);
            AddHiddenField("business_zip", billingAddress.PostalCode);
            AddHiddenField("business_country", billingAddress.CountryCode);
        }
Exemple #5
0
 private void updateCartTotal(OrderInfo orderInfo)
 {
     if (orderInfo != null)
     {
         this.txtCartTotal.Text = orderInfo.GrandTotal.ToString("C", LocalFormat);
     }
     else
     {
         this.txtCartTotal.Text = 0M.ToString("C", LocalFormat);
     }
 }
Exemple #6
0
        /// <summary>
        /// This event should occur each time a change is made to the cart.  
        /// All of the Checkout controls should be updated with the new cart information and the 
        /// order updated.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cartControl_EditComplete(object sender, EventArgs e)
        {
            OrderController orderController = new OrderController();

            CartInfo cartInfo = CurrentCart.GetInfo(PortalId);
            if (cartInfo != null & _orderInfo != null)
            {
                _orderInfo = orderController.UpdateOrderDetails(_orderInfo.OrderID, cartInfo.CartID);
            }

            CalculateTaxandShipping(_orderInfo);

            updateCheckoutOrder(_orderInfo);
        }
Exemple #7
0
        /// <summary>
        /// Calculate the tax and shipping cost for the order.
        /// </summary>
        /// <param name="orderInfo"></param>
        private void CalculateTaxandShipping(OrderInfo orderInfo)
        {
            if (orderInfo != null)
            {
                ArrayList cartItems = CurrentCart.GetItems(PortalId);

                //Shipping...
                IShippingProvider shippingProvider = StoreController.GetShippingProvider(ModulePath);
                decimal cartWeight = 0;
                foreach (ItemInfo itemInfo in cartItems)
                {
                    cartWeight += (itemInfo.ProductWeight * itemInfo.Quantity);
                }
                IShippingInfo shippingInfo = shippingProvider.CalculateShippingFee(PortalId, cartWeight);
                if (shippingInfo == null)
                {
                    plhAddressCheckout.Visible = false;
                    plhGateway.Visible = false;
                    plhTaxCheckout.Visible = false;
                    plhShippingCheckout.Visible = false;
                    trRow4.Visible = false;
                    trRow5.Visible = false;
                    trRow6.Visible = false;
                    trRow8.Visible = false;
                    //lblError.Text = "<br/>Sorry, but we don't have any shipping rates for the weight of items in your basket.  Please <a href=\"mailto:" + this.PortalSettings.Email + "\">contact us</a> stating the list of products you'd like to order and we'll get a shipping quote for you.";
                    lblError.Text = String.Format(Localization.GetString("ErrorShippingRates", this.LocalResourceFile), this._storeInfo.DefaultEmailAddress);
                    //lblError.Text = String.Format(Localization.GetString("ErrorShippingRates", this.LocalResourceFile), this.PortalSettings.Email);
                    lblError.Visible = true;
                    return;
                }
                else
                {
                    plhAddressCheckout.Visible = true;
                    plhGateway.Visible = true;
                    plhTaxCheckout.Visible = true;
                    plhShippingCheckout.Visible = true;
                    trRow4.Visible = true;
                    trRow5.Visible = true;
                    trRow6.Visible = true;
                    trRow8.Visible = true;
                    lblError.Visible = false;
                }
                orderInfo.ShippingCost = shippingInfo.Cost;

                //Surcharges...
                try
                {
                    PayPalSettings payPalSettings = new PayPalSettings(StoreData.GatewaySettings);
                    decimal m_FixedSurcharge = payPalSettings.SurchargeFixed;
                    decimal m_PercentSurcharge = payPalSettings.SurchargePercent;
                    orderInfo.ShippingCost = orderInfo.ShippingCost + m_FixedSurcharge + ((orderInfo.OrderTotal + orderInfo.ShippingCost + m_FixedSurcharge) * (m_PercentSurcharge / 100));
                    shippingInfo.Cost = orderInfo.ShippingCost;
                }
                catch
                {
                    //Not paypal
                }

                //Tax...
                ITaxProvider taxProvider = StoreController.GetTaxProvider(ModulePath);

                ITaxInfo taxInfo = taxProvider.CalculateSalesTax(PortalId, cartItems, shippingInfo, ShippingAddress);
                //if (taxInfo.ShowTax)
                //Response.Write("<br>CountryCode0: " + BillingAddress.CountryCode);
                try
                {
                    //Response.Write("<br>CountryCode2: " + shippingControl.BillingAddress.CountryCode);
                    //Response.Write("<br>CountryCode3: " + shippingProvider.BillingAddress.CountryCode);
                }
                catch (Exception ex)
                { }

                if (taxInfo.ShowTax && (BillingAddress.CountryCode == "United Kingdom"))  // ns4u changes: only the UK countries pay VAT
                {
                    trTax.Visible = true;
                    orderInfo.Tax = taxInfo.SalesTax;
                }
                else
                {
                    trTax.Visible = false;
                    orderInfo.Tax = 0;
                }
            }
        }
Exemple #8
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            //Response.Write("Page_Load");
            // return;

            if (_storeInfo == null)
            {
                StoreController storeController = new StoreController();
                _storeInfo = storeController.GetStoreInfo(PortalId);

                if (_storeInfo.CurrencySymbol != string.Empty)
                {
                    LocalFormat.CurrencySymbol = _storeInfo.CurrencySymbol;
                }

                if (_storeInfo.PortalTemplates)
                {
                    CssTools.AddCss(this.Page, PortalSettings.HomeDirectory + "Store", PortalId);
                }
                else
                {
                    CssTools.AddCss(this.Page, this.TemplateSourceDirectory, PortalId);
                }
            }

            lblGatewayTitle.Visible = false;

            if (forceSSL())
            {
                SSLHelper.RequestSecurePage();
            }

            //Mail.SendMail(PortalSettings.Email, "*****@*****.**", "", "Canadean Checkout ", " ", "", "", "", "", "", "");
            if (Request.QueryString["WorldPayExit"] != null)
            {
                //Mail.SendMail(PortalSettings.Email, "*****@*****.**", "", "Canadean Payment Checkout - " + Request.QueryString["WorldPayExit"], " ", "", "", "", "", "", "");
                loadPaymentControl();

                return;
            }

            loadCartControl();
            loadAddressControl();
            loadPaymentControl();
            loadTaxCheckoutControl();
            loadShippingCheckoutControl();

            _orderInfo = GetExistingOrder();

            updateCheckoutAddress();

            if (Request.QueryString["PayPalExit"] == null)
            {
                if (!this.Page.IsPostBack)
                {
                    if (_orderInfo == null)
                    {
                        _orderInfo = CreateOrder();
                    }

                    //Update the order details with the most recent cart items.
                    OrderController orderController = new OrderController();

                    CartInfo cartInfo = CurrentCart.GetInfo(PortalId);
                    if (cartInfo != null & _orderInfo != null)
                    {
                        _orderInfo = orderController.UpdateOrderDetails(_orderInfo.OrderID, cartInfo.CartID);
                    }
                }

                CalculateTaxandShipping(_orderInfo);
                updateCheckoutOrder(_orderInfo);
                updateStoreInfo();
            }
        }
 private void UpdateShippingTotal(OrderInfo orderInfo)
 {
     if( orderInfo != null)
     {
         this.txtShippingTotal.Text = this.OrderInfo.ShippingCost.ToString("C", LocalFormat);
     }
     else
     {
         this.txtShippingTotal.Text = 0M.ToString("C", LocalFormat);
     }
 }