Exemplo n.º 1
0
        private void ProcessCheckout()
        {
            string OrderNumber = string.Empty;

            // ----------------------------------------------------------------
            // Process The Order:
            // ----------------------------------------------------------------
            if (string.IsNullOrEmpty(ThisCustomer.PaymentTermCode))
            {
                Response.Redirect("checkoutpayment.aspx?errormsg=" + Server.UrlEncode(AppLogic.GetString("checkoutpayment.aspx.7", ThisCustomer.SkinID, ThisCustomer.LocaleSetting)));
            }
            else
            {
                string receiptCode = string.Empty;
                string status = string.Empty, multiorder = string.Empty;
                if (cart.HasMultipleShippingAddresses())        // Paypal will never hit this
                {
                    var  splittedCarts     = cart.SplitIntoMultipleOrdersByDifferentShipToAddresses();
                    bool gatewayAuthFailed = false;

                    for (int ctr = 0; ctr < splittedCarts.Count; ctr++)
                    {
                        var splitCart = splittedCarts[ctr];
                        splitCart.BuildSalesOrderDetails();

                        var shippingAddress = Address.Get(ThisCustomer, AddressTypes.Shipping, splitCart.FirstItem().m_ShippingAddressID);

                        string processedSalesOrderCode = string.Empty;
                        string processedReceiptCode    = string.Empty;
                        // NOTE:
                        //  3DSecure using Sagepay Gateway is not supported on multiple shipping orders
                        //  We will revert to the regular IS gateway defined on the WebStore
                        status = splitCart.PlaceOrder(null,
                                                      ThisCustomer.PrimaryBillingAddress,
                                                      shippingAddress,
                                                      ref processedSalesOrderCode,
                                                      ref processedReceiptCode,
                                                      false,
                                                      true,
                                                      false);

                        OrderNumber = processedSalesOrderCode;
                        receiptCode = processedReceiptCode;

                        if (status == AppLogic.ro_INTERPRISE_GATEWAY_AUTHORIZATION_FAILED)
                        {
                            gatewayAuthFailed = true;

                            if (ctr == 0)
                            {
                                ThisCustomer.IncrementFailedTransactionCount();
                                if (ThisCustomer.FailedTransactionCount >= AppLogic.AppConfigUSInt("MaxFailedTransactionCount"))
                                {
                                    cart.ClearTransaction();
                                    ThisCustomer.ResetFailedTransactionCount();
                                    Response.Redirect("orderfailed.aspx");
                                }

                                ThisCustomer.ClearTransactions(false);

                                if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout"))
                                {
                                    Response.Redirect("checkout1.aspx?paymentterm=" + ThisCustomer.PaymentTermCode + "&errormsg=" + Server.UrlEncode(status));
                                }
                                else
                                {
                                    Response.Redirect("checkoutpayment.aspx?paymentterm=" + ThisCustomer.PaymentTermCode + "&errormsg=" + Server.UrlEncode(status));
                                }
                            }
                        }

                        // NOTE :
                        //  Should handle cases when 1 or more orders failed the payment processor
                        //  if using a payment gateway on credit card
                        multiorder = multiorder + "," + OrderNumber;
                    }

                    if (multiorder != string.Empty)
                    {
                        OrderNumber = multiorder.Remove(0, 1);
                    }

                    if (!gatewayAuthFailed)
                    {
                        cart.ClearTransaction();
                    }
                }
                else
                {
                    var     billingAddress  = ThisCustomer.PrimaryBillingAddress;
                    Address shippingAddress = null;

                    //added for PayPal ADDRESSOVERRIDE
                    if (IsPayPalCheckout && !AppLogic.AppConfigBool("PayPalCheckout.OverrideAddress"))
                    {
                        if (!cart.HasShippableComponents())
                        {
                            shippingAddress = ThisCustomer.PrimaryShippingAddress;
                        }
                        else
                        {
                            pp = new PayPalExpress();
                            var GetPayPalDetails = pp.GetExpressCheckoutDetails(Request.QueryString["token"]).GetExpressCheckoutDetailsResponseDetails;
                            shippingAddress = new Address()
                            {
                                Name           = GetPayPalDetails.PayerInfo.Address.Name,
                                Address1       = GetPayPalDetails.PayerInfo.Address.Street1 + (GetPayPalDetails.PayerInfo.Address.Street2 != String.Empty ? Environment.NewLine : String.Empty) + GetPayPalDetails.PayerInfo.Address.Street2,
                                City           = GetPayPalDetails.PayerInfo.Address.CityName,
                                State          = GetPayPalDetails.PayerInfo.Address.StateOrProvince,
                                PostalCode     = GetPayPalDetails.PayerInfo.Address.PostalCode,
                                Country        = AppLogic.ResolvePayPalAddressCode(GetPayPalDetails.PayerInfo.Address.CountryName.ToString()),
                                CountryISOCode = AppLogic.ResolvePayPalAddressCode(GetPayPalDetails.PayerInfo.Address.Country.ToString()),
                                Phone          = GetPayPalDetails.PayerInfo.ContactPhone
                            };
                        }
                    }
                    else
                    {
                        // Handle the scenario wherein the items in the cart
                        // does not ship to the customer's primary shipping address
                        if (cart.OnlyShippingAddressIsNotCustomerDefault())
                        {
                            shippingAddress = Address.Get(ThisCustomer, AddressTypes.Shipping, cart.FirstItem().m_ShippingAddressID);
                        }
                        else
                        {
                            shippingAddress = ThisCustomer.PrimaryShippingAddress;
                        }
                    }

                    if (!cart.IsSalesOrderDetailBuilt)
                    {
                        cart.BuildSalesOrderDetails();
                    }

                    Gateway gatewayToUse = null;

                    try
                    {
                        if (IsPayPalCheckout)
                        {
                            //Insert PayPal call here for response - For authorize and capture of order from paypal inside IS
                            pp = new PayPalExpress();
                            var PayPalDetails         = pp.GetExpressCheckoutDetails(Request.QueryString["token"]).GetExpressCheckoutDetailsResponseDetails;
                            var doExpressCheckoutResp = pp.DoExpressCheckoutPayment(PayPalDetails.Token, PayPalDetails.PayerInfo.PayerID, OrderNumber, cart);
                            var payPalResp            = new GatewayResponse(string.Empty)
                            {
                                AuthorizationCode    = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].TransactionID,
                                TransactionResponse  = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].PaymentStatus.ToString(),
                                Details              = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].PaymentStatus.ToString(),
                                AuthorizationTransID = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].TransactionID
                            };

                            status = cart.PlaceOrder(gatewayToUse, billingAddress, shippingAddress, ref OrderNumber, ref receiptCode, true, true, payPalResp, IsPayPalCheckout, false);
                        }
                        else
                        {
                            status = cart.PlaceOrder(gatewayToUse, billingAddress, shippingAddress, ref OrderNumber, ref receiptCode, true, true, null, !IsPayPalCheckout, false);
                        }
                    }
                    catch (Exception ex)
                    {
                        if (ex.Message == "Unable to instantiate Default Credit Card Gateway")
                        {
                            cart.ClearLineItems();
                            Response.Redirect("pageError.aspx?Parameter=" + "An Error Occured while Authorizing your Credit Card, However your order has been Placed.");
                        }
                        Response.Redirect("pageError.aspx?Parameter=" + Server.UrlEncode(ex.Message));
                    }

                    if (status == AppLogic.ro_3DSecure)
                    { // If credit card is enrolled in a 3D Secure service (Verified by Visa, etc.)
                        Response.Redirect("secureform.aspx");
                    }

                    if (status != AppLogic.ro_OK)
                    {
                        ThisCustomer.IncrementFailedTransactionCount();
                        if (ThisCustomer.FailedTransactionCount >= AppLogic.AppConfigUSInt("MaxFailedTransactionCount"))
                        {
                            cart.ClearTransaction();
                            ThisCustomer.ResetFailedTransactionCount();
                            Response.Redirect("orderfailed.aspx");
                        }

                        ThisCustomer.ClearTransactions(false);

                        if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout"))
                        {
                            Response.Redirect("checkout1.aspx?paymentterm=" + ThisCustomer.PaymentTermCode + "&errormsg=" + Server.UrlEncode(status));
                        }
                        else
                        {
                            Response.Redirect("checkoutpayment.aspx?paymentterm=" + ThisCustomer.PaymentTermCode + "&errormsg=" + Server.UrlEncode(status));
                        }
                    }
                }
            }
            AppLogic.ClearCardNumberInSession(ThisCustomer);
            ThisCustomer.ClearTransactions(true);

            if (!_PayPalFailed)
            {
                Response.Redirect(string.Format("orderconfirmation.aspx?ordernumber={0}", Server.UrlEncode(OrderNumber)));
            }
        }
Exemplo n.º 2
0
    public void ProcessRequest(HttpContext context)
    {
        var ThisCustomer = ((InterpriseSuiteEcommercePrincipal)context.User).ThisCustomer;

        var m_PayPalExpress = new PayPalExpress();
        //Get PayPal info
        var PayPalDetails         = m_PayPalExpress.GetExpressCheckoutDetails(context.Request.QueryString["token"]).GetExpressCheckoutDetailsResponseDetails;
        var paypalShippingAddress = Address.New(ThisCustomer, AddressTypes.Shipping);

        if (PayPalDetails.PayerInfo.Address.Name.IsNullOrEmptyTrimmed() && (PayPalDetails.PayerInfo.Address.Street1.IsNullOrEmptyTrimmed() || PayPalDetails.PayerInfo.Address.Street2.IsNullOrEmptyTrimmed()) &&
            PayPalDetails.PayerInfo.Address.CityName.IsNullOrEmptyTrimmed() && PayPalDetails.PayerInfo.Address.StateOrProvince.IsNullOrEmptyTrimmed() && PayPalDetails.PayerInfo.Address.PostalCode.IsNullOrEmptyTrimmed() &&
            PayPalDetails.PayerInfo.Address.CountryName.ToString().IsNullOrEmptyTrimmed() || PayPalDetails.PayerInfo.ContactPhone.IsNullOrEmptyTrimmed())
        {
            paypalShippingAddress = ThisCustomer.PrimaryShippingAddress;
        }
        else
        {
            string streetAddress = PayPalDetails.PayerInfo.Address.Street1 + (!PayPalDetails.PayerInfo.Address.Street2.IsNullOrEmptyTrimmed() ? Environment.NewLine : String.Empty) + PayPalDetails.PayerInfo.Address.Street2;
            string sql           = String.Empty;
            if (ThisCustomer.IsRegistered)
            {
                sql = String.Format("SELECT COUNT(ShipToCode) AS N FROM CustomerShipTo where Address = {0} and City = {1} and State = {2} and PostalCode = {3} and Country = {4} and ShipToName = {5} and CustomerCode = {6}",
                                    streetAddress.ToDbQuote(), PayPalDetails.PayerInfo.Address.CityName.ToDbQuote(), PayPalDetails.PayerInfo.Address.StateOrProvince.ToDbQuote(), PayPalDetails.PayerInfo.Address.PostalCode.ToDbQuote(),
                                    AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.CountryName).ToString().ToDbQuote(), PayPalDetails.PayerInfo.Address.Name.ToDbQuote(), ThisCustomer.CustomerCode.ToDbQuote());
            }
            else
            {
                sql = String.Format("SELECT COUNT(1) AS N FROM EcommerceAddress where ShipToAddress = {0} and ShipToCity = {1} and ShipToState = {2} and ShipToPostalCode = {3} and ShipToCountry = {4} and ShipToName = {5} and CustomerID = {6}",
                                    streetAddress.ToDbQuote(), PayPalDetails.PayerInfo.Address.CityName.ToDbQuote(), PayPalDetails.PayerInfo.Address.StateOrProvince.ToDbQuote(), PayPalDetails.PayerInfo.Address.PostalCode.ToDbQuote(),
                                    AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.CountryName).ToString().ToDbQuote(), PayPalDetails.PayerInfo.Address.Name.ToDbQuote(), ThisCustomer.CustomerCode.ToDbQuote());

                paypalShippingAddress.EMail      = ThisCustomer.IsRegistered ? ThisCustomer.EMail : ThisCustomer.GetAnonEmail();
                paypalShippingAddress.Name       = PayPalDetails.PayerInfo.Address.Name;
                paypalShippingAddress.Address1   = PayPalDetails.PayerInfo.Address.Street1 + (PayPalDetails.PayerInfo.Address.Street2 != String.Empty ? Environment.NewLine : String.Empty) + PayPalDetails.PayerInfo.Address.Street2;
                paypalShippingAddress.City       = PayPalDetails.PayerInfo.Address.CityName;
                paypalShippingAddress.State      = PayPalDetails.PayerInfo.Address.StateOrProvince;
                paypalShippingAddress.PostalCode = PayPalDetails.PayerInfo.Address.PostalCode;
                paypalShippingAddress.Country    = AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.CountryName.ToString());
                paypalShippingAddress.Phone      = PayPalDetails.PayerInfo.ContactPhone ?? String.Empty;
            }

            int isAddressExists = DB.GetSqlN(sql);

            if (AppLogic.AppConfigBool("PayPalCheckout.RequireConfirmedAddress") || isAddressExists == 0)
            {
                ServiceFactory.GetInstance <ICustomerService>().UpdateCustomerNotesWhenPaypalAddressIsUsed();
            }
        }

        ThisCustomer.PrimaryShippingAddress = paypalShippingAddress;
        paypalShippingAddress.Save();

        string redirectUrl = String.Empty;

        //Checking for redirectURL of PayPal -- Express Checkout button in Shopping Cart page or PayPal Radio Button in Payment Page
        if (Customer.Current.ThisCustomerSession["paypalfrom"] == "shoppingcart" || Customer.Current.ThisCustomerSession["paypalfrom"] == "checkoutanon")
        {
            redirectUrl = "checkoutshipping.aspx?PayPal=True&token=" + context.Request.QueryString["token"];
        }
        else
        {
            if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout"))
            {
                if (!AppLogic.AppConfigBool("Checkout.UseOnePageCheckout.UseFinalReviewOrderPage"))
                {
                    //Insert PayPal call here for response - For authorize and capture of order from paypal inside IS
                    ThisCustomer.ThisCustomerSession["paypalfrom"] = "onepagecheckout";
                    string  OrderNumber     = String.Empty;
                    string  status          = String.Empty;
                    string  receiptCode     = String.Empty;
                    var     billingAddress  = ThisCustomer.PrimaryBillingAddress;
                    Address shippingAddress = null;
                    var     cart            = new InterpriseShoppingCart(null, ThisCustomer.SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, String.Empty, false, true);
                    if (cart.IsNoShippingRequired())
                    {
                        cart.BuildSalesOrderDetails(false, true);
                    }
                    else
                    {
                        cart.BuildSalesOrderDetails();
                    }

                    if (!AppLogic.AppConfigBool("PayPalCheckout.OverrideAddress"))
                    {
                        if (!cart.HasShippableComponents())
                        {
                            shippingAddress = ThisCustomer.PrimaryShippingAddress;
                        }
                        else
                        {
                            if (ThisCustomer.IsRegistered)
                            {
                                var GetShippingAddress = new Address()
                                {
                                    Name           = PayPalDetails.PayerInfo.Address.Name,
                                    Address1       = PayPalDetails.PayerInfo.Address.Street1 + (PayPalDetails.PayerInfo.Address.Street2 != String.Empty ? Environment.NewLine : String.Empty) + PayPalDetails.PayerInfo.Address.Street2,
                                    City           = PayPalDetails.PayerInfo.Address.CityName,
                                    State          = PayPalDetails.PayerInfo.Address.StateOrProvince,
                                    PostalCode     = PayPalDetails.PayerInfo.Address.PostalCode,
                                    Country        = AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.CountryName.ToString()),
                                    CountryISOCode = AppLogic.ResolvePayPalAddressCode(PayPalDetails.PayerInfo.Address.Country.ToString()),
                                    Phone          = PayPalDetails.PayerInfo.ContactPhone ?? String.Empty
                                };
                                shippingAddress = GetShippingAddress;
                            }
                            else
                            {
                                shippingAddress = paypalShippingAddress;
                            }
                        }
                    }

                    var    doExpressCheckoutResp = m_PayPalExpress.DoExpressCheckoutPayment(PayPalDetails.Token, PayPalDetails.PayerInfo.PayerID, OrderNumber, cart);
                    string result = String.Empty;
                    if (doExpressCheckoutResp.Errors != null && !doExpressCheckoutResp.Errors[0].ErrorCode.IsNullOrEmptyTrimmed())
                    {
                        if (AppLogic.AppConfigBool("ShowGatewayError"))
                        {
                            result = String.Format(AppLogic.GetString("shoppingcart.aspx.27", ThisCustomer.SkinID, ThisCustomer.LocaleSetting), doExpressCheckoutResp.Errors[0].ErrorCode, doExpressCheckoutResp.Errors[0].LongMessage);
                        }
                        else
                        {
                            result = AppLogic.GetString("shoppingcart.aspx.28", ThisCustomer.SkinID, ThisCustomer.LocaleSetting);
                        }

                        context.Response.Redirect("shoppingcart.aspx?ErrorMsg=" + result.ToUrlEncode(), false);
                        return;
                    }
                    else
                    {
                        Gateway gatewayToUse = null;
                        var     payPalResp   = new GatewayResponse(String.Empty)
                        {
                            AuthorizationCode    = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].TransactionID,
                            TransactionResponse  = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].PaymentStatus.ToString(),
                            Details              = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].PaymentStatus.ToString(),
                            AuthorizationTransID = doExpressCheckoutResp.DoExpressCheckoutPaymentResponseDetails.PaymentInfo[0].TransactionID
                        };

                        InterpriseHelper.UpdateCustomerPaymentTerm(ThisCustomer, DomainConstants.PAYMENT_METHOD_CREDITCARD);
                        status = cart.PlaceOrder(gatewayToUse, billingAddress, shippingAddress, ref OrderNumber, ref receiptCode, true, true, payPalResp, true, false);

                        if (status != AppLogic.ro_OK)
                        {
                            ThisCustomer.IncrementFailedTransactionCount();
                            if (ThisCustomer.FailedTransactionCount >= AppLogic.AppConfigUSInt("MaxFailedTransactionCount"))
                            {
                                cart.ClearTransaction();
                                ThisCustomer.ResetFailedTransactionCount();
                                context.Response.Redirect("orderfailed.aspx");
                            }
                            ThisCustomer.ClearTransactions(false);
                            context.Response.Redirect("checkout1.aspx?paymentterm=" + ThisCustomer.PaymentTermCode + "&errormsg=" + status.ToUrlEncode());
                        }

                        AppLogic.ClearCardNumberInSession(ThisCustomer);
                        ThisCustomer.ClearTransactions(true);

                        context.Response.Redirect(String.Format("orderconfirmation.aspx?ordernumber={0}", OrderNumber.ToUrlEncode()));
                    }
                }
                else
                {
                    InterpriseHelper.UpdateCustomerPaymentTerm(ThisCustomer, DomainConstants.PAYMENT_METHOD_CREDITCARD);
                    redirectUrl = "checkoutreview.aspx?PayPal=True&token=" + context.Request.QueryString["token"];
                }
            }
            else
            {
                InterpriseHelper.UpdateCustomerPaymentTerm(ThisCustomer, DomainConstants.PAYMENT_METHOD_CREDITCARD);
                redirectUrl = "checkoutreview.aspx?PayPal=True&token=" + context.Request.QueryString["token"];
            }
        }

        context.Response.Redirect(redirectUrl);
    }
Exemplo n.º 3
0
        private void InitializePageContent()
        {
            checkoutheadergraphic.ImageUrl = AppLogic.LocateImageURL("skins/skin_" + SkinID.ToString() + "/images/step_5.gif");
            for (int i = 0; i < checkoutheadergraphic.HotSpots.Count; i++)
            {
                var rhs = checkoutheadergraphic.HotSpots[i] as RectangleHotSpot;
                if (rhs.NavigateUrl.IndexOf("shoppingcart") != -1)
                {
                    rhs.AlternateText = AppLogic.GetString("checkoutreview.aspx.2", SkinID, ThisCustomer.LocaleSetting);
                }
                if (rhs.NavigateUrl.IndexOf("account") != -1)
                {
                    rhs.AlternateText = AppLogic.GetString("checkoutreview.aspx.3", SkinID, ThisCustomer.LocaleSetting);
                }
                if (rhs.NavigateUrl.IndexOf("checkoutshipping") != -1)
                {
                    rhs.AlternateText = AppLogic.GetString("checkoutreview.aspx.4", SkinID, ThisCustomer.LocaleSetting);
                }
                if (rhs.NavigateUrl.IndexOf("checkoutpayment") != -1)
                {
                    rhs.AlternateText = AppLogic.GetString("checkoutreview.aspx.5", SkinID, ThisCustomer.LocaleSetting);
                }
            }
            if (!AppLogic.AppConfigBool("SkipShippingOnCheckout"))
            {
                checkoutheadergraphic.HotSpots[2].HotSpotMode = HotSpotMode.Navigate;
                if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout"))
                {
                    checkoutheadergraphic.HotSpots[2].NavigateUrl = "checkout1.aspx";
                }
                else
                {
                    checkoutheadergraphic.HotSpots[2].NavigateUrl = CommonLogic.IIF(cart.HasMultipleShippingAddresses(), "checkoutshippingmult.aspx", "checkoutshipping.aspx");
                }
            }
            if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout"))
            {
                checkoutheadergraphic.HotSpots[3].NavigateUrl = "checkout1.aspx";
            }

            if (IsPayPalCheckout)
            {
                checkoutheadergraphic.HotSpots[1].HotSpotMode  = HotSpotMode.Inactive;
                checkoutheadergraphic.HotSpots[2].NavigateUrl += string.Format("?PayPal={0}&token={1}", bool.TrueString, Request.QueryString["token"]);
                checkoutheadergraphic.HotSpots[3].HotSpotMode  = HotSpotMode.Inactive;
            }

            String XmlPackageName = AppLogic.AppConfig("XmlPackage.CheckoutReviewPageHeader");

            if (XmlPackageName.Length != 0)
            {
                XmlPackage_CheckoutReviewPageHeader.Text = "<br/>" + AppLogic.RunXmlPackage(XmlPackageName, base.GetParser, ThisCustomer, SkinID, String.Empty, null, true, true);
            }

            if (cart.HasMultipleShippingAddresses())
            {
                var splittedCarts = cart.SplitIntoMultipleOrdersByDifferentShipToAddresses();
                foreach (var splitCart in splittedCarts)
                {
                    splitCart.BuildSalesOrderDetails();
                    CartSummary.Text += splitCart.RenderHTMLLiteral(new MobileCheckOutPaymentPageLiteralRenderer());
                }
                litShippingAddress.Text = "<br/>Multiple Ship Addresses";
            }
            else
            {
                //If the shopping cart contains only Electronic Downloads or Services then pass a "false" parameter for computeFreight.
                if (cart.IsNoShippingRequired())
                {
                    cart.BuildSalesOrderDetails(false, true);
                }
                else
                {
                    cart.BuildSalesOrderDetails();
                }

                Address shippingAddress = null;
                //added for PayPal ADDRESSOVERRIDE
                if (IsPayPalCheckout && !AppLogic.AppConfigBool("PayPalCheckout.OverrideAddress"))
                {
                    if (!cart.HasShippableComponents())
                    {
                        shippingAddress = ThisCustomer.PrimaryShippingAddress;
                    }
                    else
                    {
                        pp = new PayPalExpress();
                        var GetPayPalDetails   = pp.GetExpressCheckoutDetails(Request.QueryString["token"]).GetExpressCheckoutDetailsResponseDetails;
                        var GetShippingAddress = new Address();
                        GetShippingAddress.Name           = GetPayPalDetails.PayerInfo.Address.Name;
                        GetShippingAddress.Address1       = GetPayPalDetails.PayerInfo.Address.Street1 + (GetPayPalDetails.PayerInfo.Address.Street2 != String.Empty ? Environment.NewLine : String.Empty) + GetPayPalDetails.PayerInfo.Address.Street2;
                        GetShippingAddress.City           = GetPayPalDetails.PayerInfo.Address.CityName;
                        GetShippingAddress.State          = GetPayPalDetails.PayerInfo.Address.StateOrProvince;
                        GetShippingAddress.PostalCode     = GetPayPalDetails.PayerInfo.Address.PostalCode;
                        GetShippingAddress.Country        = AppLogic.ResolvePayPalAddressCode(GetPayPalDetails.PayerInfo.Address.CountryName.ToString());
                        GetShippingAddress.CountryISOCode = AppLogic.ResolvePayPalAddressCode(GetPayPalDetails.PayerInfo.Address.Country.ToString());
                        GetShippingAddress.Phone          = GetPayPalDetails.PayerInfo.ContactPhone;
                        shippingAddress = GetShippingAddress;
                    }
                }
                else
                {
                    if (cart.OnlyShippingAddressIsNotCustomerDefault())
                    {
                        shippingAddress = Address.Get(ThisCustomer, AddressTypes.Shipping, cart.FirstItem().m_ShippingAddressID);
                    }
                    else
                    {
                        shippingAddress = ThisCustomer.PrimaryShippingAddress;
                    }
                }

                litShippingAddress.Text = shippingAddress.DisplayString(true, true, true, "<br/>");
                CartSummary.Text        = cart.RenderHTMLLiteral(new MobileCheckOutPaymentPageLiteralRenderer());
            }

            if (AppLogic.AppConfigBool("ShowEditAddressLinkOnCheckOutReview"))
            {
                pnlEditBillingAddress.Visible  = true;
                pnlEditShippingAddress.Visible = true;

                //removed image arrow in mobile
                //imgBillingRedArrow.ImageUrl = AppLogic.LocateImageURL("skins/skin_" + SkinID.ToString() + "/images/redarrow.gif");
                //imgShippingRedArrow.ImageUrl = AppLogic.LocateImageURL("skins/skin_" + SkinID.ToString() + "/images/redarrow.gif");
            }

            litBillingAddress.Text = ThisCustomer.PrimaryBillingAddress.DisplayString(true, true, true, "<br/>");

            if (IsPayPalCheckout)
            {
                litPaymentMethod.Text = "PayPal Express Checkout";
            }
            else
            {
                litPaymentMethod.Text = GetPaymentMethod(ThisCustomer.PrimaryBillingAddress);
            }

            string XmlPackageName2 = AppLogic.AppConfig("XmlPackage.CheckoutReviewPageFooter");

            if (XmlPackageName2.Length != 0)
            {
                XmlPackage_CheckoutReviewPageFooter.Text = "<br/>" + AppLogic.RunXmlPackage(XmlPackageName2, base.GetParser, ThisCustomer, SkinID, String.Empty, null, true, true);
            }

            //mobile button
            AppLogic.GetButtonDisable(btnContinueCheckout1.TheButton);
            CheckoutReviewPageHeader.SetContext = this;
            CheckoutReviewPageFooter.SetContext = this;
        }