protected void Page_PreRender(object sender, EventArgs e)
        {
            if (this.Payment != null && (this.Payment.PaymentStatus == PaymentStatus.Unprocessed || this.Payment.PaymentStatus == PaymentStatus.AuthorizationPending))
            {
                PaymentMethod method = this.Payment.PaymentMethod;
                if (method != null && method.PaymentInstrumentType == PaymentInstrumentType.PayPal)
                {
                    PaymentGateway gateway = CommerceBuilder.Payments.Providers.PayPal.PayPalProvider.GetPayPalPaymentGateway(true);
                    if (gateway != null)
                    {
                        PayPalProvider provider     = (PayPalProvider)gateway.GetInstance();
                        Control        payNowButton = provider.GetPayNowButton(this.Payment.Order, this.Payment.Id);
                        if (payNowButton != null)
                        {
                            phPayNow.Controls.Add(payNowButton);

                            // IF AUTO CLICK IS ENABLED AND PAGE VIEW IS WITHIN 10 SECONDS PERIOD AFTER ORDER PLACEMENT
                            if (AutoClick)
                            {
                                if (this.Payment.Order.OrderDate.AddSeconds(10) >= LocaleHelper.LocalNow)
                                {
                                    ((PayNowButton)payNowButton).AutoClick();
                                }
                            }
                        }
                    }
                }
            }
        }
示例#2
0
        protected void Page_PreRender(object sender, System.EventArgs e)
        {
            // EXPRESS CHECKOUT BUTTON IS NOT VISIBLE BY DEFAULT
            // DETERMINE WHETHER THE PAYPAL GATEWAY IS DEFINED, AND WHETHER IT HAS API SERVICES ENABLED
            // BUTTON ONLY SHOWS IF PRODUCTS ARE IN THE BASKET AND MIN/MAX ORER LIMITS ARE MET
            if (BasketHasProducts())
            {
                bool hasSubscriptions     = BasketHelper.HasRecurringSubscriptions(AbleContext.Current.User.Basket);
                bool newSubFeatureEnabled = AbleContext.Current.Store.Settings.ROCreateNewOrdersEnabled;
                if (!hasSubscriptions || !newSubFeatureEnabled)
                {
                    Basket basket = AbleContext.Current.User.Basket;
                    foreach (BasketItem item in basket.Items)
                    {
                        if (item.OrderItemType == OrderItemType.Product)
                        {
                            if (item.Product.IsProhibited)
                            {
                                this.Visible = false;
                                return;
                            }
                        }
                    }

                    // FIND THE PAYPAL GATEWAY
                    PayPalProvider provider = AbleCommerce.Code.StoreDataHelper.GetPayPalProvider();
                    if (provider != null && provider.ApiEnabled && ValidateOrderMinMaxAmounts())
                    {
                        //SHOW PANEL IF API ENABLED
                        ExpressCheckoutPanel.Visible = !AbleContext.Current.Store.Settings.ProductPurchasingDisabled;
                        if (ShowHeader)
                        {
                            phHeader.Visible = true;
                        }
                        else
                        {
                            phHeader.Visible = false;
                        }
                        if (ShowDescription)
                        {
                            phDescription.Visible = true;
                        }
                        else
                        {
                            phDescription.Visible = false;
                        }

                        phBillMeLaterBtn.Visible = provider.IsPayPalCreditEnabled;
                    }
                }
            }
        }
        private void SetExpressCheckout(bool isBmlRequest)
        {
            PayPalProvider client = AbleCommerce.Code.StoreDataHelper.GetPayPalProvider();

            PayPalProvider.ExpressCheckoutResult result = client.SetExpressCheckout(isBmlRequest);

            // IF ERRORS ARE PRESENT, REDIRECT TO DISPLAY THEM
            if (result.Errors != null)
            {
                RedirectWithErrors(result.Errors);
            }

            // NO ERRORS FOUND, SEND TO SPECIFIED REDIRECT URL
            Response.Redirect(result.RedirectUrl);
        }
        public bool ProcessPayment(string merchantId,
                                   string cardNumber, string expiration,
                                   decimal amount)
        {
            var provider = new PayPalProvider();

            try
            {
                var cardInfo = new CreditCardDetails(cardNumber, expiration);
                provider.ProcessPayment(merchantId, cardInfo, amount);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
        private void GetExpressCheckout()
        {
            PayPalProvider           client = AbleCommerce.Code.StoreDataHelper.GetPayPalProvider();
            GetExpressCheckoutResult result = client.GetExpressCheckout();

            // IF ERRORS ARE PRESENT, REDIRECT TO DISPLAY THEM
            if (result.Errors != null)
            {
                RedirectWithErrors(result.Errors);
            }

            // NO ERRORS FOUND, IF THERE ARE SHIPPABLE ITEMS REDIRECT TO SELECTSHIPPING METHOD
            Basket paypalBasket = result.PayPalUser.Basket;

            if (paypalBasket.Items.HasShippableProducts())
            {
                Response.Redirect(AbleCommerce.Code.NavigationHelper.GetShipMethodUrl());
            }

            // NO SHIPPABLE ITEMS, SHOW THE PAYMENT / CONFIRMATION PAGE
            Response.Redirect(AbleCommerce.Code.NavigationHelper.GetPaymentUrl());
        }
        private void DoExpressCheckout()
        {
            PayPalProvider client = AbleCommerce.Code.StoreDataHelper.GetPayPalProvider();

            PayPalProvider.ExpressCheckoutResult result = client.DoExpressCheckout();

            // LOOK FOR AN ORDERID TO INDICATE THE CHECKOUT SUCCEEDED
            if (result.OrderId != 0)
            {
                // ORDER ID LOCATED, SEND TO THE RECEIPT PAGE
                Order order = OrderDataSource.Load(result.OrderId);
                Response.Redirect(AbleCommerce.Code.NavigationHelper.GetReceiptUrl(order.OrderNumber));
            }

            // THE CHECKOUT FAILED, SEE IF WE HAVE ERRORS AVAIALBLE
            if (result.Errors != null && result.Errors.Count > 0)
            {
                RedirectWithErrors(result.Errors);
            }

            // NO ERRORS AVAILABLE, USE DEFAULT
            RedirectWithDefaultError();
        }