Exemple #1
0
        public PaymentAcceptModel GetPaymentAcceptModel(WebToPayResponseModel model)
        {
            var nvc = ProcessData(model.data);

            return(new PaymentAcceptModel()
            {
                Success = nvc["status"] == "1",
                PersonCodeStatus = Convert.ToInt32(nvc["personcodestatus"])
            });
        }
Exemple #2
0
        public void ProcessPayment(WebToPayResponseModel model)
        {
            var nvc = ProcessData(model.data);

            logger.Information("Callback data: " + nvc);
            using (var session = usersSessionFactory.CreateContext(true))
            {
                var orderId = Convert.ToInt32(nvc["orderid"]);
                var status  = Convert.ToInt16(nvc["status"]);
                var order   = session.WebToPayLogs.Single(l => l.Id == orderId);
                order.Amount    = Convert.ToDecimal(nvc["payamount"]);
                order.Country   = nvc["country"];
                order.Currency  = nvc["paycurrency"];
                order.Date      = DateTime.Now;
                order.Email     = nvc["p_email"];
                order.Firstname = nvc["name"];
                order.LastName  = nvc["surename"];
                order.RequestId = nvc["requestid"];
                if (order.Status != 1)
                {
                    order.Status = status;
                }

                order.PayText = nvc["paytext"];

                if (order.UserId.HasValue)
                {
                    if (status == 1)
                    {
                        AwardSponsor(order.UserId.Value);
                    }

                    if (nvc["personcodestatus"] == "1")
                    {
                        using (var noSqlSession = noSqlSessionFactory())
                        {
                            var user =
                                noSqlSession.GetAll <Data.MongoDB.User>().Single(u => u.DbId == order.UserId.Value);
                            UserService.UniqueUser(order.Firstname, order.LastName, user.PersonCode, nvc["payment"],
                                                   order.UserId);
                        }
                    }

                    if (status == 3 && nvc["personcodestatus"] != null)
                    {
                        bus.Send(new UserConfirmedCommand()
                        {
                            UserId           = order.UserId.Value,
                            PersonCodeStatus = Convert.ToInt32(nvc["personcodestatus"])
                        });
                    }
                }
            }
        }
Exemple #3
0
        public virtual ActionResult Callback(WebToPayResponseModel model)
        {
            Logger.Information("Callback request: " + Request.Form);
            if (Service.CheckResponse(model, ConfigurationManager.AppSettings["WebToPay_Password"]))
            {
                Service.ProcessPayment(model);
                return(Content("OK"));
            }

            return(Content("Error: SS1v2 validation failed"));
        }
Exemple #4
0
        public virtual ActionResult Accept(WebToPayResponseModel model)
        {
            if (Service.CheckResponse(model, ConfigurationManager.AppSettings["WebToPay_Password"]))
            {
                var result = Service.GetPaymentAcceptModel(model);
                if (result.PersonCodeStatus == 0)
                {
                    CurrentUser.VerificationPending = true;
                }

                return(View(result));
            }

            return(View(MVC.Sponsor.Views.Cancel));
        }
Exemple #5
0
 public bool CheckResponse(WebToPayResponseModel model, string password)
 {
     return((model.data + password).GetMd5Hash() == model.ss1);
 }
Exemple #6
0
 public virtual ActionResult Cancel(WebToPayResponseModel model)
 {
     return(View());
 }