public IActionResult ProcessCheckout(CheckoutModel model)
        {
            // get the selected provider
            IPaymentProvider provider = _pluginClassesService.GetPluginClasses <IPaymentProvider>()
                                        .Where(p => p.UniqueId().CompareTo(model.SelectedProviderId) == 0).FirstOrDefault();

            if (provider == null)
            {
                throw new InvalidOperationException(Middleware.Constants.PaymentProviderNotFound);
            }

            ShoppingCartDetail cartDetails = _shoppingCartProvider.GetDetail(GetCartSummary().Id);
            UserSession        session     = GetUserSession();

            if (_shoppingCartProvider.ConvertToOrder(cartDetails, session.UserID, out Order order))
            {
                if (provider.Execute(HttpContext.Request, order, PaymentStatus.Unpaid, session, out string providerUrl))
                {
                    session.Tag = order.Id;
                    return(Redirect(providerUrl));
                }
            }

            return(RedirectToAction(nameof(Failed)));
        }
Пример #2
0
        public void OrderFailsWithEmptyInformation()
        {
            var result = paymentProvider.Execute(null);

            Assert.AreEqual(result, PaymentResult.Failure);
        }
Пример #3
0
        public void ProcessPayment(string orderData, IPaymentProvider paymentProvider)
        {
            var result = paymentProvider.Execute(orderData);

            MessageBox.Show(result.ToString());
        }
Пример #4
0
        public void ProcessPayment(string orderData, IPaymentProvider paymentProvider)
        {
            var result = paymentProvider.Execute(orderData);

            MessageBox.Show(result.ToString());
        }