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); }
public async Task <Uplata> UplatiClanarinu(ClanUplataRequestModel PodaciOUplati) { var ClanId = (int)HttpContext.GetUserID(); return(await StripeService.CreateCharge(PodaciOUplati, ClanId)); }
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); } }