Пример #1
0
        public async Task <Uplata> Uplati(ClanUplataRequestModel PodaciOUplati)
        {
            var Token  = Preferences.Get("TokenValidator", String.Empty);
            var result = await $"{ApiUrl}{_ApiRoute}/UplatiClanarinu/"
                         .WithOAuthBearerToken(Token)
                         .PostJsonAsync(PodaciOUplati).ReceiveJson <Uplata>();

            return(result);
        }
Пример #2
0
        public async Task <Uplata> UplatiClanarinu(ClanUplataRequestModel PodaciOUplati)
        {
            var ClanId = (int)HttpContext.GetUserID();

            return(await StripeService.CreateCharge(PodaciOUplati, ClanId));
        }
Пример #3
0
        public async Task <Uplata> CreateCharge(ClanUplataRequestModel Podaci, int ClanId)
        {
            //var IdTrenutnog = _HttpContext.HttpContext.User.Claims;
            Uplata     novaUplata;
            UplataClan clanUplata;

            try
            {
                StripeConfiguration.ApiKey = "sk_test_51IFliGAyuqhKSgYjdeKEYXUGcz2U8KAkBKySevIgXCl7aSGjUzsLTobfEe0VSyzSopOgo3rKwCI1a0R3ylEyjkwY00cXquMxaz";

                var optionsToken = new TokenCreateOptions
                {
                    Card = new TokenCardOptions
                    {
                        Number   = Podaci.BrojKartice,
                        ExpMonth = Podaci.DatumIsteka.Month,
                        ExpYear  = Podaci.DatumIsteka.Year,
                        Cvc      = Podaci.CCV
                    }
                };

                var   tokenService = new TokenService();
                Token stripeToken  = await tokenService.CreateAsync(optionsToken);

                var optionsCharge = new ChargeCreateOptions
                {
                    Amount      = Podaci.IznosUplate,
                    Currency    = "bam",
                    Description = $"Uplata za mjesec {DateTime.Now.Month}",
                    Source      = stripeToken.Id
                };

                var    serviceCharge = new ChargeService();
                Charge Charge        = await serviceCharge.CreateAsync(optionsCharge);

                if (Charge.Paid == true)
                {
                    novaUplata = new Uplata
                    {
                        Id                 = Charge.Id,
                        BrojKartice        = Podaci.BrojKartice,
                        CCV                = Podaci.CCV,
                        ClanId             = ClanId,
                        DatumIstekaKartice = Podaci.DatumIsteka,
                        DatumUplate        = DateTime.Now,
                        Email              = Podaci.Email,
                        Ime                = Podaci.Ime,
                        Prezime            = Podaci.Prezime,
                        UplaćeniIznos      = Podaci.IznosUplate / _NUMBER_FOR_CONVERTING_AMOUNTH_BETWEEN_STRIPE_AND_REAL
                    };

                    clanUplata = new UplataClan
                    {
                        UplataClanaId = novaUplata.Id,
                        ClanId        = novaUplata.ClanId,
                        GodinaUplate  = novaUplata.DatumUplate.Year,
                        MjesecUplate  = novaUplata.DatumUplate.Month,
                        DanUplate     = novaUplata.DatumUplate.Day
                    };

                    _Context.Uplate.Add(novaUplata);
                    _Context.UplateClanova.Add(clanUplata);
                    await _Context.SaveChangesAsync();

                    return(novaUplata);
                }
                else
                {
                    throw new Exception(Charge.FailureCode);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }