Ejemplo n.º 1
0
        public async Task <PayPalToken> AuthorizeAsync()
        {
            var clientId = _configurationProvider.ClientId;
            var secret   = _configurationProvider.ClientSecret;

            byte[] credentials = Encoding.GetEncoding("iso-8859-1").GetBytes($"{clientId}:{secret}");

            var authRequest = new HttpRequestMessage(HttpMethod.Post, AuthUrl);

            authRequest.Headers.Authorization =
                new AuthenticationHeaderValue("Basic", Convert.ToBase64String(credentials));
            authRequest.Content = new FormUrlEncodedContent(new Dictionary <string, string>()
            {
                { "grant_type", "client_credentials" }
            });

            var response = await _http.SendAsync(authRequest);

            var content = await response.Content.ReadAsStringAsync();

            var token = JsonConvert.DeserializeObject <PayPalToken>(content);

            _token        = token;
            _lastAuthDate = DateTime.UtcNow;
            return(_token);
        }
Ejemplo n.º 2
0
        private PayPalToken GetAuthorizationToken()
        {
            PayPalDetails details = db.PayPalDetails.First();
            PayPalToken   token   = null;

            if (details.Expires < DateTime.Now)
            {
                token = GetSetPayPalToken();
            }
            else
            {
                token = new PayPalToken()
                {
                    Access_Token = details.Token
                };
            }

            return(token);
        }
Ejemplo n.º 3
0
        public PayPalToken GetSetPayPalToken()
        {
            PayPalDetails details = db.PayPalDetails.First();

            string ClientID = details.ClientID;
            string Secret   = details.Secret;

            HttpClient    client  = new HttpClient();
            StringContent content = new StringContent("grant_type=client_credentials", Encoding.UTF8, "application/x-www-form-urlencoded");

            var bytes = Encoding.UTF8.GetBytes(ClientID + ":" + Secret);

            client.DefaultRequestHeaders.Add("Authorization", "Basic " + Convert.ToBase64String(bytes));

            HttpResponseMessage response = client.PostAsync("https://api.paypal.com/v1/oauth2/token", content).Result;

            if (response.IsSuccessStatusCode)
            {
                string      json  = response.Content.ReadAsStringAsync().Result;
                PayPalToken token = JsonConvert.DeserializeObject <PayPalToken>(json);

                int seconds = int.Parse(token.Expires_In);

                details.Token   = token.Access_Token;
                details.Expires = DateTime.Now.AddSeconds(seconds);
                db.SaveChanges();

                return(token);
            }
            else
            {
                return(new PayPalToken()
                {
                    Access_Token = "Failed"
                });
            }
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> BookFilm(int id)
        {
            var mf = db.MemberFilms.Where(m => m.FilmID == id && m.MemberID == CurrentMember.MemberID && m.Token != null).Any();

            if (mf)
            {
                return(RedirectToAction("AlreadyBooked", "Members"));
            }

            bool blocked = await IsBlocked(id);

            if (blocked)
            {
                return(RedirectToAction("GeoBlocked"));
            }

            Film film = db.Films.Find(id);

            PayPalToken       authToken   = GetAuthorizationToken();
            PayPalClientToken clientToken = null;

            PayPalDetails details = db.PayPalDetails.First();

            if (authToken.Access_Token == "Failed")
            {
                clientToken = new PayPalClientToken()
                {
                    client_id = details.ClientID, client_token = "FailedAuthorization"
                };
            }
            else
            {
                clientToken           = GetClientToken(authToken.Access_Token);
                clientToken.client_id = details.ClientID;
            }

            BookFilmViewModel vm = new BookFilmViewModel()
            {
                FilmID      = id,
                ClientID    = clientToken.client_id,
                ClientToken = clientToken.client_token
            };

            if (film != null)
            {
                ViewBag.ShowingTime = film.Showing;
            }

            ViewBag.CurrentTime = await GetLocationTime();

            if (film.FilmID == 242 || film.FilmID == 244 || film.FilmID == 245 || film.FilmID == 248)
            {
                ViewBag.Fiver = true;
            }
            else
            {
                ViewBag.Fiver = false;
            }

            return(View(vm));
        }