示例#1
0
        public StripeBalanceServiceTest()
        {
            this.service = new StripeBalanceService();

            this.listOptions = new StripeBalanceTransactionListOptions()
            {
                Limit = 1,
            };
        }
示例#2
0
        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);
        }