// GET api/invoice/5 public HttpResponseMessage GetUpcoming(string id, bool upcoming, int organizationId) { this.OrganizationId = organizationId; try { if (this.UserIsAdminOfOrganization) { var invoiceService = new StripeInvoiceService(); StripeInvoice response; if (upcoming) { var invoice = subscriptionService.GetUpcomingInvoice(id); return(Request.CreateResponse(HttpStatusCode.OK, invoice)); } else { response = invoiceService.Get(id); } return(Request.CreateResponse(HttpStatusCode.OK, response)); } } catch (StripeException ex) { emailHelper.SendStripeError(ex); } catch (Exception e) { emailHelper.SendErrorEmail(e); } return(Request.CreateResponse(HttpStatusCode.BadRequest)); }
public static StripeInvoice GetInvoice(string Id) { var invoiceSevice = new StripeInvoiceService(); try { return(invoiceSevice.Get(Id)); } catch (Exception ex) { return(null); } }
public ActionResult Payment(string id) { if (String.IsNullOrEmpty(id)) { return(HttpNotFound()); } if (!id.StartsWith("in_")) { id = "in_" + id; } var invoiceService = new StripeInvoiceService(); StripeInvoice invoice = invoiceService.Get(id); if (invoice == null) { return(HttpNotFound()); } Organization org = _repository.GetByStripeCustomerId(invoice.CustomerId); if (org == null) { return(HttpNotFound()); } if (!CanAccessOrganization(org.Id)) { return(HttpNotFound()); } return(View(new InvoiceModel { Invoice = invoice, Organization = org })); }
public IHttpActionResult GetInvoice(string id) { if (!id.StartsWith("in_")) { id = "in_" + id; } var invoiceService = new StripeInvoiceService(); var stripeInvoice = invoiceService.Get(id); if (stripeInvoice == null || String.IsNullOrEmpty(stripeInvoice.CustomerId)) { return(NotFound()); } var organization = _repository.GetByStripeCustomerId(stripeInvoice.CustomerId); if (organization == null || !IsInOrganization(organization.Id)) { return(NotFound()); } var invoice = new Invoice { Id = stripeInvoice.Id.Substring(4), OrganizationId = organization.Id, OrganizationName = organization.Name, Date = stripeInvoice.Date.GetValueOrDefault(), Paid = stripeInvoice.Paid.GetValueOrDefault(), Total = stripeInvoice.Total.GetValueOrDefault() / 100.0 }; foreach (var line in stripeInvoice.StripeInvoiceLines.StripeInvoiceItems) { var item = new InvoiceLineItem { Amount = line.Amount.GetValueOrDefault() / 100.0 }; if (line.Plan != null) { item.Description = String.Format("Exceptionless - {0} Plan ({1}/{2})", line.Plan.Name, (line.Plan.Amount / 100.0).ToString("c"), line.Plan.Interval); } else { item.Description = line.Description; } if (line.Period.Start.GetValueOrDefault() == line.Period.End.GetValueOrDefault()) { item.Date = line.Period.Start.GetValueOrDefault().ToShortDateString(); } else { item.Date = String.Format("{0} - {1}", line.Period.Start.GetValueOrDefault().ToShortDateString(), line.Period.End.GetValueOrDefault().ToShortDateString()); } invoice.Items.Add(item); } var coupon = stripeInvoice.StripeDiscount != null ? stripeInvoice.StripeDiscount.StripeCoupon : null; if (coupon != null) { double discountAmount = coupon.AmountOff ?? stripeInvoice.Subtotal.GetValueOrDefault() * (coupon.PercentOff.GetValueOrDefault() / 100.0); string description = String.Format("{0} {1}", coupon.Id, coupon.PercentOff.HasValue ? String.Format("({0}% off)", coupon.PercentOff.Value) : String.Format("({0} off)", (coupon.AmountOff.GetValueOrDefault() / 100.0).ToString("C"))); invoice.Items.Add(new InvoiceLineItem { Description = description, Amount = discountAmount }); } return(Ok(invoice)); }
public async Task <IHttpActionResult> GetInvoiceAsync(string id) { if (!Settings.Current.EnableBilling) { return(NotFound()); } if (!id.StartsWith("in_")) { id = "in_" + id; } StripeInvoice stripeInvoice = null; try { var invoiceService = new StripeInvoiceService(Settings.Current.StripeApiKey); stripeInvoice = invoiceService.Get(id); } catch (Exception ex) { _logger.Error().Exception(ex).Message("An error occurred while getting the invoice: " + id).Identity(ExceptionlessUser.EmailAddress).Property("User", ExceptionlessUser).SetActionContext(ActionContext).Write(); } if (String.IsNullOrEmpty(stripeInvoice?.CustomerId)) { return(NotFound()); } var organization = await _repository.GetByStripeCustomerIdAsync(stripeInvoice.CustomerId); if (organization == null || !CanAccessOrganization(organization.Id)) { return(NotFound()); } var invoice = new Invoice { Id = stripeInvoice.Id.Substring(3), OrganizationId = organization.Id, OrganizationName = organization.Name, Date = stripeInvoice.Date.GetValueOrDefault(), Paid = stripeInvoice.Paid, Total = stripeInvoice.Total / 100.0 }; foreach (var line in stripeInvoice.StripeInvoiceLineItems.Data) { var item = new InvoiceLineItem { Amount = line.Amount / 100.0 }; if (line.Plan != null) { item.Description = $"Exceptionless - {line.Plan.Name} Plan ({(line.Plan.Amount / 100.0).ToString("c")}/{line.Plan.Interval})"; } else { item.Description = line.Description; } if (stripeInvoice.PeriodStart == stripeInvoice.PeriodEnd) { item.Date = stripeInvoice.PeriodStart.ToShortDateString(); } else { item.Date = $"{stripeInvoice.PeriodStart.ToShortDateString()} - {stripeInvoice.PeriodEnd.ToShortDateString()}"; } invoice.Items.Add(item); } var coupon = stripeInvoice.StripeDiscount?.StripeCoupon; if (coupon != null) { if (coupon.AmountOff.HasValue) { double discountAmount = coupon.AmountOff.GetValueOrDefault() / 100.0; string description = $"{coupon.Id} ({discountAmount.ToString("C")} off)"; invoice.Items.Add(new InvoiceLineItem { Description = description, Amount = discountAmount }); } else { double discountAmount = (stripeInvoice.Subtotal / 100.0) * (coupon.PercentOff.GetValueOrDefault() / 100.0); string description = $"{coupon.Id} ({coupon.PercentOff.GetValueOrDefault()}% off)"; invoice.Items.Add(new InvoiceLineItem { Description = description, Amount = discountAmount }); } } return(Ok(invoice)); }
public IHttpActionResult GetInvoice(string id) { if (!Settings.Current.EnableBilling) { return(NotFound()); } if (!id.StartsWith("in_")) { id = "in_" + id; } StripeInvoice stripeInvoice = null; try { var invoiceService = new StripeInvoiceService(); stripeInvoice = invoiceService.Get(id); } catch (Exception ex) { Log.Error().Exception(ex).Message("An error occurred while getting the invoice: " + id).Write(); } if (stripeInvoice == null || String.IsNullOrEmpty(stripeInvoice.CustomerId)) { return(NotFound()); } var organization = _repository.GetByStripeCustomerId(stripeInvoice.CustomerId); if (organization == null || !IsInOrganization(organization.Id)) { return(NotFound()); } var invoice = new Invoice { Id = stripeInvoice.Id.Substring(3), OrganizationId = organization.Id, OrganizationName = organization.Name, Date = stripeInvoice.Date.GetValueOrDefault(), Paid = stripeInvoice.Paid, Total = stripeInvoice.Total / 100.0 }; foreach (var line in stripeInvoice.StripeInvoiceLineItems.Data) { var item = new InvoiceLineItem { Amount = line.Amount / 100.0 }; if (line.Plan != null) { item.Description = String.Format("Exceptionless - {0} Plan ({1}/{2})", line.Plan.Name, (line.Plan.Amount / 100.0).ToString("c"), line.Plan.Interval); } else { item.Description = line.Description; } if (stripeInvoice.PeriodStart == stripeInvoice.PeriodEnd) { item.Date = stripeInvoice.PeriodStart.ToShortDateString(); } else { item.Date = String.Format("{0} - {1}", stripeInvoice.PeriodStart.ToShortDateString(), stripeInvoice.PeriodEnd.ToShortDateString()); } invoice.Items.Add(item); } var coupon = stripeInvoice.StripeDiscount != null ? stripeInvoice.StripeDiscount.StripeCoupon : null; if (coupon != null) { double discountAmount = coupon.AmountOff ?? stripeInvoice.Subtotal * (coupon.PercentOff.GetValueOrDefault() / 100.0); string description = String.Format("{0} {1}", coupon.Id, coupon.PercentOff.HasValue ? String.Format("({0}% off)", coupon.PercentOff.Value) : String.Format("({0} off)", (coupon.AmountOff.GetValueOrDefault() / 100.0).ToString("C"))); invoice.Items.Add(new InvoiceLineItem { Description = description, Amount = discountAmount }); } return(Ok(invoice)); }
public StripeInvoice Get(string invoiceId) { return(_stripeInvoiceService.Get(invoiceId)); }
public StripeInvoice GetInvoice(string invoiceId) { var invoiceService = new StripeInvoiceService(); return(invoiceService.Get(invoiceId)); }