public ActionResult Fallback(string orderId, string contactId, string marketId, string cartName) { var viewModel = new VippsTestViewModel { VippsTestForm = new VippsTestForm { OrderId = orderId } }; try { var status = _vippsService.GetOrderStatusAsync(orderId, marketId).Result; if (status.TransactionInfo.Status == VippsStatusResponseStatus.RESERVE.ToString()) { viewModel.Step = VippsUpdatePaymentResponseStatus.Initiate.ToString(); viewModel.Message = $"Payment successfully initiated. Vipps order id: {orderId}"; } else { viewModel.Message = $"Payment not initiated. Vipps order id: {orderId}. Payment status: {status.TransactionInfo.Status}"; } } catch (Exception ex) { viewModel.Message = $"Something went wrong on initializing payment or calling payment status endpoint. Exception: {ex.Message} {ex.InnerException} {ex.StackTrace}"; } return(View("Index", viewModel)); }
public ActionResult Capture(VippsTestViewModel model) { var configuration = _configurationLoader.GetConfiguration(_currentMarket.GetCurrentMarket().MarketId); var vippsApi = _vippsServiceApiFactory.Create(configuration); var viewModel = new VippsTestViewModel { VippsTestForm = new VippsTestForm { OrderId = model.VippsTestForm.OrderId } }; try { var result = vippsApi.Capture(model.VippsTestForm.OrderId, new UpdatePaymentRequest { MerchantInfo = new MerchantInfo { MerchantSerialNumber = Convert.ToInt32(configuration.MerchantSerialNumber) }, Transaction = new Transaction { Amount = 20000, TransactionText = "Test vipps capture" } }, "idempotencyKey").Result; if (result.TransactionInfo.Status == VippsUpdatePaymentResponseStatus.Captured.ToString()) { viewModel.Message = $"Order with vipps orderId {model.VippsTestForm.OrderId} successfully captured"; viewModel.Step = VippsUpdatePaymentResponseStatus.Captured.ToString(); } else { viewModel.Message = $"Capture failed for order with vipps orderId {model.VippsTestForm.OrderId}. Order status: {result.TransactionInfo.Status}"; viewModel.Step = VippsUpdatePaymentResponseStatus.Initiate.ToString(); } } catch (Exception ex) { viewModel.Message = $"Capture failed for order with vipps orderId {model.VippsTestForm.OrderId}. Exception: {ex.Message} {ex.InnerException} {ex.StackTrace}"; viewModel.Step = VippsUpdatePaymentResponseStatus.Initiate.ToString(); } return(View("Index", viewModel)); }
public ActionResult Initiate() { var configuration = _configurationLoader.GetConfiguration(_currentMarket.GetCurrentMarket().MarketId); var vippsApi = _vippsServiceApiFactory.Create(configuration); var viewModel = new VippsTestViewModel(); try { var orderId = OrderNumberHelper.GenerateOrderNumber(); var initiatePaymentRequest = new InitiatePaymentRequest { CustomerInfo = new CustomerInfo(), MerchantInfo = new MerchantInfo { CallbackPrefix = EnsureCorrectUrl(configuration.SiteBaseUrl, "vippscallback/"), ConsentRemovalPrefix = EnsureCorrectUrl(configuration.SiteBaseUrl, "vippscallback/"), FallBack = EnsureCorrectUrl(configuration.SiteBaseUrl, $"vippstest/fallback?orderId={orderId}"), ShippingDetailsPrefix = EnsureCorrectUrl(configuration.SiteBaseUrl, "vippscallback/"), IsApp = false, MerchantSerialNumber = Convert.ToInt32(configuration.MerchantSerialNumber), PaymentType = VippsConstants.RegularCheckout }, Transaction = new Transaction { Amount = 20000, OrderId = orderId, TimeStamp = DateTime.Now, TransactionText = "test" } }; var result = vippsApi.Initiate(initiatePaymentRequest).Result; return(Redirect(result.Url)); } catch (Exception ex) { viewModel.Message = $"Initiate payment failed. Exception: {ex.Message} {ex.InnerException} {ex.StackTrace}"; return(View("Index", viewModel)); } }
// GET: VippsTest public ActionResult Index() { var viewModel = new VippsTestViewModel(); return(View(viewModel)); }