public ActionResult ProceedToPaypal(Student student)
        {
            try
            {
                string  encodemodel = System.Web.Helpers.Json.Encode(student);
                string  data        = Uri.EscapeDataString(encodemodel);
                Context db          = new Context();
                string  subdomain   = Request.Url.Host.Split(new char[] { '.' })[0];
                var     oSetting    = (from setting in db.EnrolSetting
                                       join company in db.Company on setting.CompanyID equals company.CompanyID
                                       where setting.SiteName == subdomain
                                       select new { companyid = setting.CompanyID, brand = company.CompanyName, domain = setting.SiteName, logo = setting.LogoUrl, webexperienceid = setting.WebExperienceID, payee = setting.PaypalEmail }).FirstOrDefault();

                string WebExperienceProfileID = oSetting.webexperienceid;
                if (string.IsNullOrWhiteSpace(WebExperienceProfileID))
                {
                    WebExperienceProfileID = PaypalService.webexperience(oSetting.domain, oSetting.brand, oSetting.logo);
                    string query       = "Update EnrollSettings Set WebExperienceID = '" + WebExperienceProfileID + "' Where CompanyID = " + oSetting.companyid;
                    var    QueryResult = db.Database.ExecuteSqlCommand(query);
                }

                var    payment    = PaypalService.CreatePayment(GetBaseUrl(), "sale", (student.TotalClassPrice - student.DiscountPrice).ToString(), oSetting.payee, WebExperienceProfileID, data);
                string approvlurl = payment.GetApprovalUrl();
                return(Redirect(approvlurl));
            }
            catch (Exception ex)
            {
                FlashMessage.Warning(ex.Message);
                return(RedirectToAction("RegistrationError"));
            }
        }
示例#2
0
 public PaymentService(PaypalService paypalService, FairplaytubeDatabaseContext fairplaytubeDatabaseContext,
                       ILogger <CustomHttpClientHandler> customHttpClientHandlerLogger)
 {
     this.FairplaytubeDatabaseContext = fairplaytubeDatabaseContext;
     this.PaypalService = paypalService;
     this.CustomHttpClientHandlerLogger = customHttpClientHandlerLogger;
 }
示例#3
0
 public PaypalController(PaypalService paypalService, PackageService packageService,
                         SessionHandler sessionHandler, DonationTransactionService cashTransactionService)
 {
     _paypalService              = paypalService;
     _packageService             = packageService;
     _donationTransactionService = cashTransactionService;
     _sessionUser = sessionHandler.GetSessionUser();
 }
示例#4
0
 public PayoutService(PaypalService paypalService,
                      FairplaytubeDatabaseContext fairplaytubeDatabaseContext,
                      ICurrentUserProvider currentUserProvider,
                      IStringLocalizer <PayoutService> localizer)
 {
     this.PaypalService = paypalService;
     this.FairplaytubeDatabaseContext = fairplaytubeDatabaseContext;
     this.CurrentUserProvider         = currentUserProvider;
     Localizer = localizer;
 }
示例#5
0
        public async Task <PaymentProcessed> VerifyRequest([ActivityTrigger] string reqBody, ILogger log)
        {
            log.LogInformation("Started VerifyRequest");
            var result = await PaypalService.VerifyRequestAsync(reqBody);

            log.LogInformation(result.IsSuccess.ToString());
            log.LogInformation(result.Error);
            log.LogInformation("Exited VerifyRequest");

            return(result.Result);
        }
        public void Run()
        {
            loginer        = new Loginer();
            registration   = new Registration();
            passwordWriter = new PasswordWriter();
            dbManager      = new DbManager();
            users          = new List <User>();
            cart           = new List <Product>();

            paypalService = new PaypalService();

            while (true)
            {
                switch (MainMenu())
                {
                case 1:
                {
                    if (LoginMenu())
                    {
                        InnerMenu();
                    }
                    break;
                }

                case 2:
                {
                    users = dbManager.SelectUsers();
                    User newUser;

                    if (registration.TryAddUser(users, out newUser))
                    {
                        WriteLine("Регистрация успешна!");
                        dbManager.InsertUser(newUser);
                    }
                    else
                    {
                        WriteLine("Регистрация прервана.");
                    }
                    break;
                }

                case 3:
                {
                    WriteLine("До свидания!");
                    Environment.Exit(0);
                    break;
                }
                }
            }
        }
        protected void CheckoutWithPaypal(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                LoadBasket();
                return;
            }

            Log("Start Payment Process - Paypal: " + DateTime.Now + Environment.NewLine + "Lock session for checkout: " + DateTime.Now);

            var customerSession = UpdateCustomerSession();

            var basket = GetBasketByExternalSession();

            if (basket == null)//we are in trouble.
            {
                var externalSessionId = AuthenticationService.GetExternalSessionId(ExternalBasketCookieName);
                DisplayError(GetTranslation("Session_Basket_NotFound"), "No Basket was found matching sessionId: " + externalSessionId);
                return;
            }

            var sessionId = AuthenticationService.GetSessionId(SessionCookieName);

            // var session = AuthenticationService.GetSession(sessionId);
            PaypalService.SetUserSessionId(sessionId.ToString());

            var paypalOrder  = BasketService.BuildPayPalOrder(basket);
            var paypalResult = PaypalService.ShortcutExpressCheckout(PayPalSuccessUrl, PayPalCancelUrl, null, paypalOrder, false, "Mark");

            if (paypalResult.IsError)
            {
                Response.Redirect("~/Error/ExternalAPiError/");
            }
            else
            {
                CurrentSession.PayPalToken   = paypalResult.Token;
                CurrentSession.PayPalOrderId = paypalResult.Transaction_Id;
                AuthenticationService.UpdateSession(CurrentSession);
                Response.Redirect(paypalResult.RedirectURL);
            }
        }
        public ActionResult OnAuthorizedPayment(string data, string paymentID, string payerID)
        {
            try
            {
                Context db = new Context();
                JavaScriptSerializer jss = new JavaScriptSerializer();
                Student model            = jss.Deserialize <Student>(data);
                var     payment          = PaypalService.ExecutePayment(paymentID, payerID);
                if (payment.state == "approved")
                {
                    int StudentID = SaveRegistration(model);

                    StudentPayment pay = new StudentPayment();
                    pay.PaymentID     = 0;
                    pay.PaymentDate   = DateTime.Now.Date;
                    pay.TransactionID = payment.id;
                    pay.type          = "Paypal";
                    pay.StudentID     = StudentID;
                    pay.Detail        = "";
                    pay.Amount        = (model.TotalClassPrice - model.DiscountPrice);
                    db.StudentPayment.Add(pay);
                    db.SaveChanges();

                    Utilities.AssignKeycodesToCourseAddons(model.SelectedOptions, model.FirstName, model.LastName, model.Email, model.ClassID, StudentID);
                    Utilities.SendClassRegistrationConfirmationToStudent(model);

                    return(RedirectToAction("RegistrationConfirmed", new { id = StudentID }));
                }
                else
                {
                    FlashMessage.Warning("Paypal Transaction Fail");
                    return(RedirectToAction("RegistrationError"));
                }
            }
            catch (Exception ex)
            {
                FlashMessage.Warning(ex.Message);
                return(RedirectToAction("RegistrationError"));
            }
        }
        private void GetPayerDetails()
        {
            Log("BookingAddressPayPal => GetPayerDetails() - started.");

            if (_session == null)
            {
                _session = GetSession();
            }

            Log("BookingAddressPayPal => GetPayerDetails() - Confirming Checkout Details.");
            var paypalDetails = PaypalService.ConfirmCheckoutDetails(_session.PayPalToken);

            Log("Updating Paypal Payment details");
            _session.PayPalPayerId = paypalDetails.PayPalReturnUserInfo.Payer_Id;
            _session.PayPalOrderId = paypalDetails.Transaction_Id;
            AuthenticationService.UpdateSession(_session);

            if (paypalDetails.PayPalReturnUserInfo.Firstname != null)
            {
                //populate user details form. and update address session details.
                PopulateCustomerDetails(paypalDetails);
            }
        }
        protected void CompletePaypalCheckout(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }

            var orderId            = string.Empty;
            var bCheckoutCompleted = false;

            try
            {
                // end create new user
                var newUser = CreateUser();

                _session.InCheckoutProccess     = false;
                _session.InOrderCreationProcess = true;

                AuthenticationService.UpdateSession(_session);

                if (_session.BasketId == null)
                {
                    Log("Invalid or missing basket in session. Id:" + _session.Id);
                    return;
                }

                //_basket = BasketService.GetBasket(_session.BasketId.Value);

                var isoCurrencyCode = CurrencyService.GetCurrencyIsoCodeById(_session.CurrencyId);

                Log("Paypal log- payment to take next, next is order");

                var payPalReturn = PaypalService.ConfirmPayment((_basket.Total.ToString(CultureInfo.InvariantCulture)), isoCurrencyCode, _session.PayPalToken, _session.PayPalPayerId);

                Log("Paypal log- payment taken, next is order, paypal return status: " + payPalReturn.ErrorMessage);

                _session.PayPalOrderId = payPalReturn.Transaction_Id;

                AuthenticationService.UpdateSession(_session);

                if (payPalReturn.IsError)
                {
                    throw new Exception(payPalReturn.ErrorMessage);
                }

                //create the order.
                var order = CheckoutService.CreateOrderPayPal(_session, _basket, newUser, GetClientIpAddress(), CurrentLanguageId,
                                                              MicrositeId);

                //persist address
                CheckoutService.CreateAddressPaypal(order, _session, newUser);

                //create barcodes
                Log("Payment success - Generate barcode");
                GenerateOrderBarcodes(order);

                //send booking to ECR.
                Log("Sending booking to ECR basketid: " + _basket.Id);
                var result = SendBookingToEcr(order);

                //result from booking must be there.
                if (result == null)
                {
                    JumpToOrderCreationError("Booking_failed", "SendBooking() to Ecr Failed");
                    return;
                }

                //clear cookie sessions and remove session from checkout mode
                ClearCheckoutCookies();

                //Prepare email notifications
                CreateOrderConfirmationEmail(order);
                orderId = order.Id.ToString();

                bCheckoutCompleted = true;
            }
            catch (Exception ex)
            {
                Log("Paypal Payment Error: " + ex.Message);
                bCheckoutCompleted = false;
            }
            finally
            {
                UnlockSessionFromOrderCreationLock(_session);
                Log("PayPal Payment - Session unlocked");
            }


            //Redirect user to order confirmation page or error
            Response.Redirect(bCheckoutCompleted
                ? string.Format("~/BookingCompleted.aspx?oid={0}", orderId)
                : @"~/ErrorPages/BookingError.aspx");
        }