public ActionResult ProceedSPEI(PaymentViewModel model)
        {
            //Setear variables del conector
            PaymentApplication paymentApp = _paymentService.GetPaymentApplicationByKey(model.AppKey);

            paymentProviderService.MerchantId   = paymentApp.MerchantId;
            paymentProviderService.PublicKey    = paymentApp.PublicKey;
            paymentProviderService.PrivateKey   = paymentApp.PrivateKey;
            paymentProviderService.DashboardURL = paymentApp.DashboardURL;

            PaymentModel payment = new PaymentModel()
            {
                ClientId    = paymentApp.ClientId,
                OrderId     = model.OrderId,
                Amount      = model.Amount,
                DueDate     = DateUtil.GetDateTimeNow().AddDays(TransferExpirationDays),
                Description = model.Description,
            };

            model.PaymentMethod = PaymentMethod.BANK_ACCOUNT;
            payment             = paymentProviderService.CreateBankTransferPayment(payment);
            model.ChargeSuccess = payment.ChargeSuccess;
            if (payment.ChargeSuccess)
            {
                //Primero guardar en BD
                Payment paymentBO = new Payment();
                paymentBO.CreationDate      = DateUtil.GetDateTimeNow();
                paymentBO.User              = paymentApp.User;
                paymentBO.Amount            = model.Amount;
                paymentBO.OrderId           = model.OrderId;
                paymentBO.ConfirmationEmail = model.ConfirmationEmail;
                paymentBO.ProviderId        = payment.Id;
                paymentBO.Status            = payment.Status;
                paymentBO.DueDate           = payment.DueDate;
                paymentBO.Method            = PaymentMethod.BANK_ACCOUNT;
                paymentBO.TransactionType   = PaymentType.CHARGE;

                paymentBO.ConfirmationDate = null;

                _paymentService.Create(paymentBO);

                model.Id             = payment.Id;
                model.Description    = payment.Description;
                model.JsonData       = payment.ResultData;
                model.DueDate        = payment.DueDate;
                model.PaymentCardURL = payment.PaymentCardURL;
                model.BankName       = payment.PaymentMethod.BankName;
                model.Clabe          = payment.PaymentMethod.Clabe;
                model.Reference      = payment.PaymentMethod.Reference;
                model.Name           = payment.PaymentMethod.Name;
                model.Agreement      = payment.PaymentMethod.Agreement;

                return(RedirectPermanent(payment.PaymentCardURL));
            }
            else
            {
                model.Description = payment.ResultData;
                return(null);
            }
        }
Beispiel #2
0
        public ActionResult CreateSPEI(PaymentViewModel model)
        {
            //Setear variables del conector
            PaymentApplication paymentApp = _paymentService.GetPaymentApplicationByKey(AppKey);

            paymentProviderService.MerchantId   = paymentApp.MerchantId;
            paymentProviderService.PublicKey    = paymentApp.PublicKey;
            paymentProviderService.PrivateKey   = paymentApp.PrivateKey;
            paymentProviderService.DashboardURL = paymentApp.DashboardURL;

            PaymentModel payment = new PaymentModel()
            {
                ClientId    = paymentApp.ClientId,
                OrderId     = model.OrderId,
                Amount      = model.Amount,
                DueDate     = DateUtil.GetDateTimeNow().AddDays(TransferExpirationDays),
                Description = String.Format("Pago de orden {0}", model.OrderId),
            };

            model.PaymentMethod = PaymentMethod.BANK_ACCOUNT;
            payment             = paymentProviderService.CreateBankTransferPayment(payment);
            model.ChargeSuccess = payment.ChargeSuccess;

            if (payment.ChargeSuccess)
            {
                //Primero guardar en BD
                Payment paymentBO = new Payment();
                paymentBO.CreationDate = DateUtil.GetDateTimeNow();
                paymentBO.User         = new User()
                {
                    Id = Authenticator.AuthenticatedUser.Id
                };
                paymentBO.Amount            = model.Amount;
                paymentBO.OrderId           = model.OrderId;
                paymentBO.ConfirmationEmail = model.ConfirmationEmail;
                paymentBO.ProviderId        = payment.Id;
                paymentBO.Status            = payment.Status;
                paymentBO.DueDate           = payment.DueDate;
                paymentBO.Method            = PaymentMethod.BANK_ACCOUNT;
                paymentBO.TransactionType   = PaymentType.CHARGE;

                paymentBO.ConfirmationDate = null;

                _paymentService.Create(paymentBO);

                model.Id             = payment.Id;
                model.Description    = payment.Description;
                model.JsonData       = payment.ResultData;
                model.DueDate        = payment.DueDate;
                model.PaymentCardURL = payment.PaymentCardURL;
                model.BankName       = payment.PaymentMethod.BankName;
                model.Clabe          = payment.PaymentMethod.Clabe;
                model.Reference      = payment.PaymentMethod.Reference;
                model.Name           = payment.PaymentMethod.Name;
                model.Agreement      = payment.PaymentMethod.Agreement;
            }
            else
            {
                model.Description = payment.ResultData;
            }

            //return View("CreateSPEI", model);
            return(View("CheckoutSuccess", model));
        }