private bool IsMethodVisible(PaymentMethod method)
        {
            // DO NOT SHOW HIDDEN PAYMENT INTRUMENTS
            PaymentInstrumentType[] hiddenMethods = { PaymentInstrumentType.GiftCertificate, PaymentInstrumentType.GoogleCheckout, PaymentInstrumentType.Mail, PaymentInstrumentType.PhoneCall, PaymentInstrumentType.PurchaseOrder };
            if (Array.IndexOf(hiddenMethods, method.PaymentInstrumentType) > -1)
            {
                return(false);
            }

            // ONLY SHOW PAYPAL FOR THAT GATEWAY
            bool isPayPalGateway = (_ProviderInstance is CommerceBuilder.Payments.Providers.PayPal.PayPalProvider);

            if (method.PaymentInstrumentType == PaymentInstrumentType.PayPal)
            {
                return(isPayPalGateway);
            }

            // ONLY SHOW AMAZON INSTRUMENTS FOR THE AMAZON GATEWAY
            string classId  = Misc.GetClassId(_ProviderInstance.GetType());
            bool   isAmazon = classId.EndsWith("CommerceBuilder.Amazon");

            if (isAmazon)
            {
                return(method.PaymentInstrumentType == PaymentInstrumentType.Amazon);
            }

            // MUST BE CREDIT CARD, CHECK, OR UNKNOWN
            return(true);
        }
示例#2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // verify the provider is configured
            _AmazonProvider = GetAmazonProvider();
            if (_AmazonProvider == null)
            {
                Response.Redirect(NavigationHelper.GetBasketUrl());
            }

            // package the basket on first visit
            Basket basket = AbleContext.Current.User.Basket;

            if (!Page.IsPostBack)
            {
                IBasketService basketService = AbleContext.Resolve <IBasketService>();
                basketService.Package(basket, true);
                basketService.Combine(basket);
                foreach (var shipment in basket.Shipments)
                {
                    shipment.ShipMethod = null;
                }
                basket.Save();
                basketService.Recalculate(basket);
            }

            // bind the amazon widgets
            MethodInfo buttonMethod = _AmazonProvider.GetType().GetMethod("GetAddressWidget");
            string     eventHandler = "document.getElementById('" + RecalculateShippingButton.ClientID + "').click();";

            object[]    parameters    = new object[] { basket, eventHandler, false };
            PlaceHolder addressWidget = (PlaceHolder)buttonMethod.Invoke(_AmazonProvider, parameters);

            this.ShippingAddress.Controls.Add(addressWidget);
            BindBasketGrid();
        }
        private bool ShowPaymentMethods(IPaymentProvider provider)
        {
            string providerClassId = Misc.GetClassId(provider.GetType());
            string gcerClassId     = Misc.GetClassId(typeof(CommerceBuilder.Payments.Providers.GiftCertificatePaymentProvider));

#pragma warning disable 618
            string gchkClassId = Misc.GetClassId(typeof(CommerceBuilder.Payments.Providers.GoogleCheckout.GoogleCheckout));
#pragma warning restore 618
            bool unassignable = gcerClassId.Equals(providerClassId) || gchkClassId.Equals(providerClassId);
            return(!unassignable);
        }
示例#4
0
        protected void RecalculateShippingButton_Click(object sender, EventArgs e)
        {
            if (_AmazonProvider != null)
            {
                // make sure payment panel is hidden
                PaymentPanel.Visible = false;

                // need to get the address where we are shipping
                User       user = AbleContext.Current.User;
                string     purchaseContractId = Request.QueryString["purchaseContractId"];
                MethodInfo getAddressMethod   = _AmazonProvider.GetType().GetMethod("GetDestinationAddress");
                object[]   parameters         = new object[] { user, purchaseContractId };
                Address    address            = (Address)getAddressMethod.Invoke(_AmazonProvider, parameters);

                // make sure we have a valid address
                if (address != null)
                {
                    // make sure the basket is packaged
                    Basket         basket        = AbleContext.Current.User.Basket;
                    IBasketService basketService = AbleContext.Resolve <IBasketService>();
                    basketService.Package(basket);

                    // set all shipments to the right destination
                    foreach (BasketShipment shipment in basket.Shipments)
                    {
                        shipment.Address = address;
                    }
                    basket.Save();

                    // calculate shipping
                    ShippingMethodPanel.Visible = true;
                    IShipRateQuoteCalculator    shippingCalculator = AbleContext.Resolve <IShipRateQuoteCalculator>();
                    ICollection <ShipRateQuote> rateQuotes         = shippingCalculator.QuoteForShipment(AbleContext.Current.User.Basket.Shipments[0]);
                    ShipMethodsList.DataSource = GetShipMethodListDs(rateQuotes);
                    ShipMethodsList.DataBind();
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            Payment payment = PaymentDataSource.Load(this.PaymentId);

            if (payment != null && IsUnprocessedAmazonPayment(payment))
            {
                IPaymentProvider amazonProvider = GetAmazonProvider();
                if (amazonProvider != null)
                {
                    MethodInfo  buttonMethod  = amazonProvider.GetType().GetMethod("GetPaymentButton");
                    object[]    parameters    = new object[] { payment };
                    ImageButton paymentButton = (ImageButton)buttonMethod.Invoke(amazonProvider, parameters);
                    this.ButtonPanel.Controls.Add(paymentButton);
                }
            }
        }
        protected void Page_PreRender(object sender, EventArgs e)
        {
            bool hasSubscriptions     = BasketHelper.HasRecurringSubscriptions(AbleContext.Current.User.Basket);
            bool newSubFeatureEnabled = AbleContext.Current.Store.Settings.ROCreateNewOrdersEnabled;

            if (!hasSubscriptions || !newSubFeatureEnabled)
            {
                IPaymentProvider amazonProvider = GetAmazonProvider();
                if (amazonProvider != null)
                {
                    MethodInfo  buttonMethod   = amazonProvider.GetType().GetMethod("GetCheckoutButton");
                    object[]    parameters     = new object[] { AbleContext.Current.User.Basket };
                    PlaceHolder checkoutButton = (PlaceHolder)buttonMethod.Invoke(amazonProvider, parameters);
                    this.ButtonPanel.Controls.Add(checkoutButton);
                }
            }
        }