Ejemplo n.º 1
0
 public IActionResult Create(Purchase purchase)
 {
     if (ModelState.IsValid)
     {
         _context.Purchases.Add(purchase);
         _context.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(purchase));
 }
Ejemplo n.º 2
0
        public IActionResult Create(Beer beer)
        {
            beer.UserId = User.GetUserId();

            if (ModelState.IsValid)
            {
                _context.Beers.Add(beer);
                _context.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(beer));
        }
Ejemplo n.º 3
0
        public Purchase Charge(CheckoutForm form, Beer beer)
        {
            var charge = new StripeChargeCreateOptions()
            {
                Amount         = Convert.ToInt32(beer.Price * 100),
                ApplicationFee = Convert.ToInt32((beer.Price * 0.05M) * 100),
                Currency       = "AUD",
                Source         = new StripeSourceOptions()
                {
                    TokenId = form.StripeToken
                }
            };

            var service = new StripeChargeService(beer.User.StripeAccessToken);
            var result  = service.Create(charge);

            if (!result.Paid)
            {
                throw new Exception(result.FailureMessage);
            }

            var purchase = new Purchase()
            {
                Email           = form.StripeEmail,
                StripePaymentId = result.Id,
                CreatedDate     = DateTime.Now
            };

            _brewsyContext.Purchases.Add(purchase);
            _brewsyContext.SaveChanges();

            return(purchase);
        }
Ejemplo n.º 4
0
        public IActionResult StripeCallback(string code)
        {
            var service = new StripeOAuthTokenService("sk_test_FYvhtg9S58z86Idcktw6JhAg");

            var result = service.Create(new StripeOAuthTokenCreateOptions()
            {
                Code      = code,
                GrantType = "authorization_code"
            });

            var user = _brewsyContext.Users.FirstOrDefault(x => x.Id == User.GetUserId());

            user.StripeAccessToken    = result.AccessToken;
            user.StripePublishableKey = result.StripePublishableKey;
            user.StripeRefreshToken   = result.RefreshToken;
            user.StripeUserId         = result.StripeUserId;

            _brewsyContext.SaveChanges();

            return(RedirectToAction("Index", "Beers"));
        }