Пример #1
0
        public async Task <Subscription> GetSubscriptionAsync(string subscriptionId)
        {
            var options = new SubscriptionGetOptions
            {
            };

            var subscription = await _subscriptionService.GetAsync(subscriptionId, options);

            return(subscription);
        }
Пример #2
0
        private Stripe.Subscription GetStripeSubscription(string subscriptionId)
        {
            StripeConfiguration.ApiKey = _appKeys.StripeApiKey;

            var service = new SubscriptionService();
            var options = new SubscriptionGetOptions();

            options.AddExpand("default_payment_method");
            var subscription = service.Get(subscriptionId, options);

            return(subscription);
        }
        public ActionResult <RetrieveSubscriptionInformationResponse> RetrieveSubscriptionInformation([FromBody] RetrieveSubscriptionInformationRequest req)
        {
            if (!ModelState.IsValid)
            {
                return(this.FailWithMessage("invalid params"));
            }
            var options = new SubscriptionGetOptions();

            options.AddExpand("latest_invoice");
            options.AddExpand("customer.invoice_settings.default_payment_method");
            options.AddExpand("items.data.price.product");
            var          service = new SubscriptionService();
            Subscription subscription;

            try
            {
                subscription = service.Get(req.Subscription, options);
            }
            catch (StripeException e)
            {
                return(this.FailWithMessage($"Failed to retrieve subscription with ID ({req.Subscription}): {e}"));
            }

            var invoiceOptions = new UpcomingInvoiceOptions
            {
                Subscription = req.Subscription,
            };
            var     invoiceService = new InvoiceService();
            Invoice upcomingInvoice;

            try
            {
                upcomingInvoice = invoiceService.Upcoming(invoiceOptions);
            }
            catch (StripeException e)
            {
                return(this.FailWithMessage($"Failed to retrieve upcoming invoice: {e}"));
            }

            var item = subscription.Items.Data[0];

            return(new RetrieveSubscriptionInformationResponse
            {
                Card = subscription.Customer.InvoiceSettings.DefaultPaymentMethod.Card,
                ProductDescription = item.Price.Product.Name,
                CurrentPrice = item.Price.Id,
                CurrentQuantity = item.Quantity,
                LatestInvoice = subscription.LatestInvoice,
                UpcomingInvoice = upcomingInvoice,
            });
        }
Пример #4
0
 public virtual Task <Subscription> GetAsync(string id, SubscriptionGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default)
 {
     return(this.GetEntityAsync(id, options, requestOptions, cancellationToken));
 }
Пример #5
0
 public virtual Subscription Get(string id, SubscriptionGetOptions options = null, RequestOptions requestOptions = null)
 {
     return(this.GetEntity(id, options, requestOptions));
 }
Пример #6
0
 public virtual Task <Subscription> Get(string subscriptionId, SubscriptionGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default)
 {
     return(GetEntity(subscriptionId, options, requestOptions, cancellationToken));
 }