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))); }
public void OrderFailsWithEmptyInformation() { var result = paymentProvider.Execute(null); Assert.AreEqual(result, PaymentResult.Failure); }
public void ProcessPayment(string orderData, IPaymentProvider paymentProvider) { var result = paymentProvider.Execute(orderData); MessageBox.Show(result.ToString()); }