public ActionResult CancelPayment(DibsPaymentPage currentPage, DibsPaymentResult result) { var model = new CancelPaymentViewModel(currentPage, result); _metricsLoggingService.Count("Purchase", "Purchase Cancelled"); _metricsLoggingService.Count("Payment", "Dibs"); return(View("CancelPayment", model)); }
public override void SetUp() { base.SetUp(); _paymentResponse = Fixture.Create <DibsPaymentResult>(); _processingResult = new DibsPaymentProcessingResult(Fixture.Create <PurchaseOrderModel>(), Fixture.Create <string>()); _dibsPaymentProcessorMock.Setup(x => x.ProcessPaymentResult(_paymentResponse, It.IsAny <IIdentity>())) .Returns(_processingResult); _expectedModel = CreateReceiptViewModel(); _receiptViewModelBuilderMock.Setup(b => b.BuildFor(_processingResult)).Returns(_expectedModel); }
public ActionResult ProcessPayment(DibsPaymentPage currentPage, DibsPaymentResult result) { if (_log.IsDebugEnabled()) { _log.Debug("Payment processed: {0}", result); } var model = GetReceiptForPayment(result); // Track successfull order in Google Analytics _googleAnalyticsTracker.TrackAfterPayment(model); return(View("ReceiptPage", model)); }
public DibsPaymentProcessingResult ProcessPaymentResult(DibsPaymentResult result, IIdentity identity) { var cartHelper = new CartHelper(Cart.DefaultName); if (cartHelper.Cart.OrderForms.Count == 0) { return(null); } var cart = cartHelper.Cart; var payment = cart.OrderForms[0].Payments[0] as DibsPayment; if (payment != null) { payment.CardNumberMasked = result.CardNumberMasked; payment.CartTypeName = result.CardTypeName; payment.TransactionID = result.Transaction; payment.TransactionType = TransactionType.Authorization.ToString(); payment.Status = result.Status; cartHelper.Cart.Status = DIBSPaymentGateway.PaymentCompleted; } else { throw new Exception("Not a DIBS Payment"); } var orderNumber = cartHelper.Cart.GeneratePredictableOrderNumber(); Log.Debug("Order placed - order number: " + orderNumber); cartHelper.Cart.OrderNumberMethod = CartExtensions.GeneratePredictableOrderNumber; var results = OrderGroupWorkflowManager.RunWorkflow(cartHelper.Cart, OrderGroupWorkflowManager.CartCheckOutWorkflowName); var message = string.Join(", ", OrderGroupWorkflowManager.GetWarningsFromWorkflowResult(results)); if (message.Length == 0) { cartHelper.Cart.SaveAsPurchaseOrder(); cartHelper.Cart.Delete(); cartHelper.Cart.AcceptChanges(); } var order = _orderService.GetOrderByTrackingNumber(orderNumber); // Must be run after order is complete, // This will release the order for shipment and // send the order receipt by email _paymentCompleteHandler.ProcessCompletedPayment(order, identity); return(new DibsPaymentProcessingResult(order, message)); }
public ActionResult ProcessPayment(DibsPaymentPage currentPage, DibsPaymentResult result) { ReceiptPage receiptPage = _contentRepository.Get <ReceiptPage>(_siteConfiguration.GetSettings().ReceiptPage); if (_log.IsDebugEnabled()) { _log.Debug("Payment processed: {0}", result); } CartHelper cartHelper = new CartHelper(Cart.DefaultName); string message = ""; OrderViewModel orderViewModel = null; if (cartHelper.Cart.OrderForms.Count > 0) { var payment = cartHelper.Cart.OrderForms[0].Payments[0] as DibsPayment; if (payment != null) { payment.CardNumberMasked = result.CardNumberMasked; payment.CartTypeName = result.CardTypeName; payment.TransactionID = result.Transaction; payment.TransactionType = TransactionType.Authorization.ToString(); payment.Status = result.Status; cartHelper.Cart.Status = DIBSPaymentGateway.PaymentCompleted; } else { throw new Exception("Not a DIBS Payment"); } var orderNumber = cartHelper.Cart.GeneratePredictableOrderNumber(); _log.Debug("Order placed - order number: " + orderNumber); cartHelper.Cart.OrderNumberMethod = CartExtensions.GeneratePredictableOrderNumber; var results = OrderGroupWorkflowManager.RunWorkflow(cartHelper.Cart, OrderGroupWorkflowManager.CartCheckOutWorkflowName); message = string.Join(", ", OrderGroupWorkflowManager.GetWarningsFromWorkflowResult(results)); if (message.Length == 0) { cartHelper.Cart.SaveAsPurchaseOrder(); cartHelper.Cart.Delete(); cartHelper.Cart.AcceptChanges(); } var order = _orderService.GetOrderByTrackingNumber(orderNumber); // Must be run after order is complete, // This will release the order for shipment and // send the order receipt by email _paymentCompleteHandler.ProcessCompletedPayment(order, User.Identity); orderViewModel = new OrderViewModel(_currentMarket.GetCurrentMarket().DefaultCurrency.Format, order); } ReceiptViewModel model = new ReceiptViewModel(receiptPage); model.CheckoutMessage = message; model.Order = orderViewModel; // Track successfull order in Google Analytics TrackAfterPayment(model); return(View("ReceiptPage", model)); }
public ActionResult CancelPayment(DibsPaymentPage currentPage, DibsPaymentResult result) { var model = new CancelPaymentViewModel(currentPage, result); return(View("CancelPayment", model)); }
private ReceiptViewModel GetReceiptForPayment(DibsPaymentResult result) { var processingResult = _paymentProcessor.ProcessPaymentResult(result, _identityProvider.GetIdentity()); return(_receiptViewModelBuilder.BuildFor(processingResult)); }
public CancelPaymentViewModel(DibsPaymentPage currentPage, DibsPaymentResult result) : base(currentPage) { }