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); }
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); }
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); } } }