如果Stripe中的收费日期相同,则所有金额的总和
我正在迭代条纹电荷对象 ,我想总结每天的总amount
。
# Returns an array object of charges for a customer @customer_charges = Stripe::Charge.all(:customer => current_user.stripeid)
浏览次数:
On Monday, you were charged a total of
当然,上述仅仅是每笔费用的输出线,而不是当天的总和。 我面临的困难是总结每一天的所有费用。 有人能指出我正确的方向吗?
输出如下:
"On Monday, you were charged a total of 200000" "On Tueesday, you were charged a total of 500000" etc...
代替:
On Monday, you were charged a total of 100000" On Monday, you were charged a total of 100000" etc...
我的view
看起来很乱,用于比较日期的if statements
行,看起来不正确。
您需要遍历Stripe中的每个费用对象,存储每笔费用的金额和解析日期:
# Fetch charges in batches of 100 records from Stripe API, yield each individual charge to a block. def each_stripe_charge_for_customer(customer_id) starting_after = nil loop do customer_charges = Stripe::Charge.all(customer: customer_id, limit: 100, starting_after: starting_after) break if customer_charges.none? charges.each do |charge| yield charge end starting_after = charges.data.last.id end end charges_by_date = Hash.new(0) # For each Stripe charge, store the date and amount into a hash. each_stripe_charge_for_customer(current_user.stripeid) do |stripe_charge| # Parses Stripe's timestamp to a Ruby date object. `to_date` converts a DateTime object to a date (daily resolution). charge_date = Time.at(stripe_charge.created).to_date charge_amount = stripe_charge.amount charges_by_date[charge_date] += charge_amount end