public ActionResult MallCreate()
        {
            var random    = new Random();
            var buyOrder  = random.Next(9999999).ToString();
            var sessionId = random.Next(9999999).ToString();
            var urlHelper = new UrlHelper(ControllerContext.RequestContext);
            var returnUrl = urlHelper.Action("MallReturn", "WebpayPlus", null, Request.Url.Scheme);

            var transactions = new List <TransactionDetail>();

            transactions.Add(new TransactionDetail(
                                 random.Next(9999999),
                                 "597055555536",
                                 random.Next(9999999).ToString()
                                 ));
            transactions.Add(new TransactionDetail(
                                 random.Next(9999999),
                                 "597055555537",
                                 random.Next(9999999).ToString()
                                 ));

            var result = MallTransaction.Create(buyOrder, sessionId, returnUrl, transactions);

            ViewBag.Result       = result;
            ViewBag.BuyOrder     = buyOrder;
            ViewBag.SessionId    = sessionId;
            ViewBag.ReturnUrl    = returnUrl;
            ViewBag.Transactions = transactions;
            ViewBag.Action       = result.Url;
            ViewBag.Token        = result.Token;

            return(View());
        }
        public ActionResult ExecuteMallStatus()
        {
            var token = Request.Form["token_ws"];

            var result = MallTransaction.Status(token);

            ViewBag.Result   = result;
            ViewBag.SaveToke = token;

            return(View());
        }
        public ActionResult MallReturn()
        {
            var token  = Request.Form["token_ws"];
            var result = MallTransaction.Commit(token);

            var urlHelper = new UrlHelper(ControllerContext.RequestContext);

            ViewBag.Token            = token;
            ViewBag.Action           = urlHelper.Action("ExecuteMallRefund", "WebpayPlus", null, Request.Url.Scheme);
            ViewBag.Result           = result;
            ViewBag.SaveToken        = token;
            ViewBag.SaveAmount       = result.Details.First().Amount;
            ViewBag.SaveCommerceCode = result.Details.First().CommerceCode;
            ViewBag.SaveBuyOrder     = result.Details.First().BuyOrder;

            ViewBag.Success = result.Details.All(detail => detail.ResponseCode == 0);
            return(View());
        }
        public ActionResult ExecuteMallRefund()
        {
            var token        = Request.Form["token_ws"];
            var buyOrder     = Request.Form["buy_order"];
            var commerceCode = Request.Form["commerce_code"];
            var amount       = decimal.Parse(Request.Form["amount"]);

            ViewBag.Token = token;
            UrlHelper urlHelper = new UrlHelper(ControllerContext.RequestContext);

            ViewBag.Action = urlHelper.Action("ExecuteMallStatus", "WebpayPlus", null, Request.Url.Scheme);

            ViewBag.SaveAmount       = amount;
            ViewBag.SaveCommerceCode = commerceCode;
            ViewBag.SaveToken        = token;
            ViewBag.SaveBuyOrder     = buyOrder;

            var result = MallTransaction.Refund(token, buyOrder, commerceCode, amount);

            ViewBag.Result = result;

            return(View());
        }