2017-12-18 3 views
0

Ich baue ein Dashboard, und eines der Elemente, die ich auflisten möchte, ist das Bruttovolumen für YTD aus der Stripe API.Stripe API YTD Auszahlungen

Kann mir jemand helfen? Ich arbeite in Rails, ich habe einen erfolgreichen Aufruf an die API und ich kann Retouren erhalten, aber ich kann nicht herausfinden, wie alle Auszahlungen-> Beträge zusammengefügt werden, um mir YTD-Informationen zu geben.

@payoutList = Stripe::Payout.list.to_json 

ist was ich bisher habe.

API Documentation

Antwort

1

Versuchen Sie folgendes:

@payoutList["data"].sum { |payout| payout["amount"] } 

Wenn Sie alle Auszahlungen YTD summieren möchten und Sie haben eine große Anzahl von ihnen, ich es so tun würde:

sum = 0 
last_payout_id = nil 
start_at = Time.now.beginning_of_year.to_i 
end_at = Time.now.end_of_year.to_i 

loop do 
    payouts = Stripe::Payout.list(limit: 100, status: "paid", created: { gte: start_at, lte: end_at }, starting_after: last_payout_id) 
    break if payouts.data.empty? 

    sum += payouts.data.sum { |payout| payout.amount } 
    last_payout_id = payouts.data.last.id 
end 

Es gibt wahrscheinlich Möglichkeiten, das Obige zu refaktorieren, aber hier sind die wichtigen Punkte, die ich sehe:

  • Stellen Sie den erstellten Parameter bereit, um sicherzustellen, dass Sie nur die Auszahlungen des aktuellen Jahres erhalten.
  • Ich schätze, Sie möchten nur Auszahlungen erhalten, die bezahlt wurden (es ist möglich, dass Sie ausstehende, gescheiterte oder annullierte Auszahlungen ohne diese erhalten würden).
  • Da die Auszahlungs-API-Methode maximal 100 zurückgibt, müssen Sie weiterhin eine Liste mit Auszahlungen erstellen, bis die Liste leer ist.

Ich würde auch versuchen, nach einer Möglichkeit, den gesamten Auszahlungsbetrag direkt von Stripe API abrufen. Ich bin mir nicht sicher, ob es existiert. So bist du nicht derjenige, der Mathe machen muss.

+0

Ich habe zu dieser Zeit 117 Auszahlungen, ich erwarte das Doppelte bis Ende nächsten Jahres. Ich denke, es gab mir nur meine erste Auszahlung von 409,5. Der Output, den ich daraus habe, ist 410. Sollte ungefähr 6129 sein. Hmm Könntest du das kaputt machen? –

+0

Ich habe meine Antwort mit mehr Informationen bearbeitet. Da Sie 117 Auszahlungen haben, müssen Sie 3 Aufrufe an Stripe :: Payout.list machen. Der letzte Aufruf sollte ein leeres Datenfeld zurückgeben und die Schleife unterbrechen. Ich habe auch die anderen Parameter hinzugefügt, die Sie angeben sollten, um sicherzustellen, dass Sie nur YTD-Auszahlungen erhalten. –

+0

Ich würde das in meinen Controller richtig legen? Neu für die MVC-Art, Dinge zu tun, und für Rails. Leider gibt es die API nicht, um das Gesamtergebnis zu ziehen. Ich kann es bekommen, wenn ich direkt von Stripe exportiere, aber ich würde es lieber beim erneuten Laden der Seite ziehen. –