public async Task <IPaymentPackage> InsertPackageAsync(string productId, IPaymentPackage package) { var model = _mapper.Map <PlanCreateOptions>(package); model.Product = productId; model.Currency = "usd"; model.Amount = package.Amount * 100; model.Active = true; var pkg = await _planService.CreateAsync(model); return(_mapper.Map <IPaymentPackage>(pkg)); }
private async Task <StripeIdResponse> CreatePlanAsync(string planId, decimal amount, string interval, string productId) { var planService = new PlanService(); var plan = await planService.CreateAsync(new PlanCreateOptions { Id = planId, Amount = ConvertToStripePrice(amount), Interval = interval, Product = productId, Currency = SprintTekConsts.Currency }); return(new StripeIdResponse { Id = plan.Id }); }
/// <summary> /// Adds specified plan to stripe if it doesn't exist /// </summary> private static async Task AddPlan(PlanService planService, StripeList <Stripe.Plan> plans, Models.Plan plan, string productId) { if (!plans.Any(x => x.Nickname.Equals(plan.Name))) { await planService.CreateAsync(new PlanCreateOptions { Nickname = plan.Name, Amount = plan.PricePerUnit, Metadata = plan.Metadata, Product = new PlanProductOptions() { Id = productId }, Interval = plan.Interval.ToString().ToLower(), Currency = plan.PlanCurrency.ToString().ToLower(), }); } }
private async Task <Plan> CreateRecurringPlan(int amount, string currency, CancellationToken token) { Product product = await GetOrCreateRecurringDonationProduct(token).ConfigureAwait(false); return(await planService.CreateAsync( new PlanCreateOptions() { ProductId = product.Id, Active = true, Amount = amount * 100, Currency = currency, Interval = "month", BillingScheme = "per_unit", UsageType = "licensed", IntervalCount = 1 }, cancellationToken : token).ConfigureAwait(false)); }