// GET: Admin/Dashboard public ActionResult Index() { var customerService = new StripeCustomerService(); var customers = customerService.List(); var balanceService = new StripeBalanceService(); var balance = balanceService.Get(); var chargeService = new StripeChargeService(); var charges = chargeService.List().Where(c => c.Dispute != null); var sc = customers as StripeCustomer[] ?? customers.ToArray(); var model = new DashboardViewModel { CustomerCount = sc.Count(), AccountAvailableBalance = balance.Available.Sum(b => b.Amount), AccountPendingBalance = balance.Pending.Sum(b => b.Amount), MonthlyCustomerValue = sc.Sum(c => c.StripeSubscriptionList.Data.Sum(s => s.StripePlan.Amount)), DisputedChargeCount = charges.Sum(c => c.Dispute.Amount.GetValueOrDefault()), TrialCustomerCount = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("trialing"))), ActiveCustomerCount = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("active"))), PastDueCustomerCount = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("past_due"))), CanceledCustomerCount = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("canceled"))), UnpaidCustomerCount = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("unpaid"))), }; return(View(model)); }
public void it_should_have_the_total_count() { var result = new StripeBalanceService(Cache.ApiKey).List(new StripeBalanceTransactionListOptions { IncludeTotalCount = true }); result.TotalCount.Should().BeGreaterOrEqualTo(4); result.Data.Count.Should().BeGreaterOrEqualTo(4); }
public StripeBalanceServiceTest() { this.service = new StripeBalanceService(); this.listOptions = new StripeBalanceTransactionListOptions() { Limit = 1, }; }
public static List <Transaction> GetDonorBoxTransactions(string apiKey, DateTime startDate, DateTime endDate) { StripeConfiguration.SetApiKey(apiKey); var transactions = new List <Transaction>(); var balanceClient = new StripeBalanceService(); var parameters = new StripeBalanceTransactionListOptions(); var chargeClient = new StripeChargeService(); var refundClient = new StripeRefundService(); parameters.Created = new StripeDateFilter { GreaterThanOrEqual = startDate, LessThanOrEqual = endDate }; parameters.Limit = 100; foreach (var balanceTransaction in balanceClient.List(parameters).Where(t => t.Type != "payout")) { StripeCharge charge = null; if (balanceTransaction.Type == "charge" || balanceTransaction.Type == "payment") { charge = chargeClient.Get(balanceTransaction.SourceId); } else if (balanceTransaction.Type == "refund") { var chargeId = refundClient.Get(balanceTransaction.SourceId).ChargeId; charge = chargeClient.Get(chargeId); } if (charge?.Status == "succeeded") { transactions.Add(StripeMapping.MapToTransaction(balanceTransaction, charge)); } } return(transactions); }
public void Balance(string Api_Key, ref string Response, ref string Errors, ref int ErrorCode) { try { StripeConfiguration.SetApiKey(Api_Key); var balanceService = new StripeBalanceService(); var balance = balanceService.Get(); var response = balance.StripeResponse; Response = response.ResponseJson; ErrorCode = 0; } catch (StripeException e) { ErrorCode = 1; Serializer serializer = new Serializer(); StripeError stripeError = e.StripeError; Errors = serializer.Serialize <StripeError>(stripeError); } }
public UpdatePayoutsData() { try { // Get active Stripe keys var getStripeKeys = db.stripes.GroupBy(s => s.SecretKey).Select(x => x.FirstOrDefault()).ToList(); foreach (var stripe in getStripeKeys) { StripeConfiguration.SetApiKey(stripe.SecretKey); // Get Payouts var payoutService = new StripePayoutService(); StripeList <StripePayout> payoutItems = payoutService.List( new StripePayoutListOptions() { Limit = 100 } ); foreach (var payout in payoutItems) { if (payout.Status == "paid") { var checkPayout = db.stripepayouts.Where(p => p.StripePayoutID == payout.Id).ToList(); if (checkPayout.Count == 0) { // Insert Payout stripepayout insertPayout = new stripepayout(); insertPayout.StripePayoutID = payout.Id; insertPayout.PaidDate = payout.ArrivalDate; insertPayout.PropertyID = stripe.PropertyID; db.stripepayouts.Add(insertPayout); db.SaveChanges(); // Get Payouts Payments var balanceService = new StripeBalanceService(); StripeList <StripeBalanceTransaction> balanceTransactions = balanceService.List( new StripeBalanceTransactionListOptions() { Limit = 100, PayoutId = payout.Id } ); foreach (var transaction in balanceTransactions) { if (transaction.Description != "STRIPE PAYOUT") { stripepayoutdetail payoutDetails = new stripepayoutdetail(); payoutDetails.AmountGross = (transaction.Amount / 100.0M); payoutDetails.Fee = (transaction.Fee / 100.0M); payoutDetails.AmountNet = (transaction.Net / 100.0M); payoutDetails.Description = transaction.Description; payoutDetails.StripePayoutID = insertPayout.ID; db.stripepayoutdetails.Add(payoutDetails); db.SaveChanges(); } } } } } } } catch (Exception e) { SendUsEmail error = new SendUsEmail(); error.sendError(e.ToString(), "Error getting iRent Payouts"); } }