Esempio n. 1
0
        public ActionResult Index(PaymentModel payment)
        {
            if (string.IsNullOrWhiteSpace(payment.FirstName) && string.IsNullOrWhiteSpace(payment.LastName) && string.IsNullOrWhiteSpace(payment.Address1) && string.IsNullOrWhiteSpace(payment.Address2) &&
                string.IsNullOrWhiteSpace(payment.Month) && string.IsNullOrWhiteSpace(payment.Year) && string.IsNullOrWhiteSpace(payment.PostCode) && string.IsNullOrWhiteSpace(payment.CardCode))
            {
                ModelState.AddModelError("CardNumber", "Cannot be empty and card number has to be 14 digits or greater");
            }
            if (!ModelState.IsValid)
            {
                View(payment);
            }

            TransactionResponse result = new PaymentProcesses().ChargeCredit(payment);

            if (result != null && result.ResultCode == AuthorizeNet.Api.Contracts.V1.messageTypeEnum.Ok)
            {
                PaymentManager paymentManager = new PaymentManager(_context);
                string         userID         = _userManager.GetUserId(User);
                paymentManager.SubtractBalanceFromStudent(userID, result.AmountPaid);

                RegistrationManager registrationManager = new RegistrationManager(_context);
                int studentID = registrationManager.GetStudentIDFromUserID(userID);
                paymentManager.CreatePaymentForDatabase(result, studentID);

                TransactionResponse viewmodel = new TransactionResponse()
                {
                    TransId      = result.TransId,
                    ResultCode   = result.ResultCode,
                    ResponseCode = result.ResponseCode,
                    MessageCode  = result.MessageCode,
                    AuthCode     = result.AuthCode,
                    Description  = result.Description,
                    AmountPaid   = result.AmountPaid,
                };

                List <TransactionResponse> viewmodelList = new List <TransactionResponse>
                {
                    viewmodel
                };
                return(RedirectToAction("TransactionResponse", new { viewmodelList = JsonConvert.SerializeObject(viewmodelList) }));
            }
            else
            {
                PaymentModel model = new PaymentModel();

                TransactionResponse transaction = new TransactionResponse();

                if (transaction.ErrorCode == "6" || transaction.ErrorCode == "78" || transaction.ErrorCode == "316" || transaction.ErrorCode == "112")
                {
                    model.CardNumber = transaction.ErrorText;
                    return(View("Index", model.CardNumber));
                }
                else
                {
                    return(View("Index", model.CardNumber));
                }
            }
        }
Esempio n. 2
0
        public ActionResult Index(PaymentModel payment)
        {
            if (string.IsNullOrWhiteSpace(payment.FirstName) && string.IsNullOrWhiteSpace(payment.LastName) && string.IsNullOrWhiteSpace(payment.Address1) && string.IsNullOrWhiteSpace(payment.Address2) &&
                string.IsNullOrWhiteSpace(payment.Month) && string.IsNullOrWhiteSpace(payment.Year) && string.IsNullOrWhiteSpace(payment.PostCode) && string.IsNullOrWhiteSpace(payment.CardCode))
            {
                ModelState.AddModelError("CardNumber", "Cannot be empty and card number has to be 14 digits or greater");
            }
            if (!ModelState.IsValid)
            {
                View(payment);
            }

            TransactionResponse result = new PaymentProcesses().ChargeCredit(payment);

            if (result != null && result.resultCode == AuthorizeNet.Api.Contracts.V1.messageTypeEnum.Ok)
            {
                TransactionResponse viewmodel = new TransactionResponse()
                {
                    transId      = result.transId,
                    resultCode   = result.resultCode,
                    responseCode = result.responseCode,
                    messageCode  = result.messageCode,
                    authCode     = result.authCode,
                    description  = result.description,
                };

                List <TransactionResponse> viewmodelList = new List <TransactionResponse>
                {
                    viewmodel
                };
                return(View("TransactionResponse", viewmodelList));
            }
            else
            {
                PaymentModel model = new PaymentModel();

                TransactionResponse transaction = new TransactionResponse();

                if (transaction.errorCode == "6" && transaction.errorCode == "78" && transaction.errorCode == "316" && transaction.errorCode == "112")
                {
                    model.CardNumber = transaction.errorText;
                    return(View("Index", model.CardNumber));
                }
                else
                {
                    return(View("Index", model.CardNumber));
                }
            }
        }
        public ActionResult PaymentProcess(PaymentModel payment)
        {
            TransactionResponse result = new PaymentProcesses().ChargeCredit(payment);
            string respMsg             = "";

            if (result != null && result.resultCode == AuthorizeNet.Api.Contracts.V1.messageTypeEnum.Ok)
            {
                respMsg    += "Successfully created transaction with Transaction ID: " + result.transId + "<br />";
                respMsg    += "Response Code: " + result.responseCode + "<br />";
                respMsg    += "Message Code: " + result.messageCode + "<br />";
                respMsg    += "Description: " + result.description + "<br />";
                respMsg    += "Success, Auth Code : " + result.authCode + "<br />";
                ViewBag.css = "alert alert-success";
            }
            else
            {
                respMsg = "Error Code: " + result.errorCode + "<br />" +
                          "Error message: " + result.errorText;
                ViewBag.css = "alert alert-danger";
            }
            ViewBag.Msg = respMsg;

            return(View("index"));
        }