Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        // GET: VippsTest
        public ActionResult Index()
        {
            var viewModel = new VippsTestViewModel();

            return(View(viewModel));
        }