Exemplo n.º 1
0
        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
            });
        }
Exemplo n.º 3
0
 /// <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(),
         });
     }
 }
Exemplo n.º 4
0
        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));
        }