2012-04-24 6 views
15

Ich komme davon, meine erste Seite mit Stripe zusammenzustellen, aber ich habe das Gefühl, dass ich meine Stripe-Integration viel besser gestalten könnte als ich. Die Hauptprobleme, auf die ich gestoßen bin, waren: Wie behalte ich den Status des Stripe-Accounts (trialing und überfällig usw.), was sind die wichtigen Webhooks (und die besten Wege, mit allen Ereignissen umzugehen) und wie viele Daten sollte ich Duplizieren in meiner Datenbank, und wie viel sollte ich nur aus Stripe-Datenbank ziehen.Streifen wiederkehrende/Abonnement-Abrechnung beste Design/Praktiken?

Würde gerne einige Ideen herumwerfen, was am besten wäre. Als Referenz entwickelte ich meine Website in Ruby auf Schienen, entfaltet Heroku, verwendet Send Grid Heroku hinzufügen, um E-Mail-Benachrichtigungen über Rechnungen, späte Zahlungen usw.

Auch für die Verwendung von Streifen auf RoR sind hier einige gute Ressourcen dass ich verwendet (obwohl ich nicht eine gefunden, die wirklich wiederkehrenden/Abonnement Abrechnung mit Streifen bedeckt):

Railscast:

Ofcourse Streifen Dokumentation und api:

Dieses kleine Stück Code für webhooks/Mailing

Antwort

1

Die SaaS Rails Kit (das ich erstellt habe) integriert sich in stripe, indem nur die Karteninformationen mit stripe gespeichert werden (ohne eine wiederkehrende Gebühr einzurichten), das Token zurückgeholt und das Token dann mit einem täglichen cron-Job abgerechnet wird, wenn die Konten der Leute fällig werden.

Ein paar Vorteile dieses Ansatzes schließen ein, sich nicht um Webhooks kümmern zu müssen/die beiden Systeme synchron zu halten und zusätzlich zu einer monatlichen Grundgebühr eine abgerechnete Abrechnung durchführen zu können.

+1

interessant, so dass Sie im Grunde alles manuell handhaben an Ihrem Ende – hajpoj

+10

Warum würden Sie Cron-Jobs einrichten, um damit umzugehen, wenn Stripe bereits wiederkehrende/Abonnementabrechnung als Funktionalität hat? – JM4

+0

Ich bin seit 2 Stunden für eine Lösung googeling. Jede Ressource, die ich dort finde, ist irgendwo ein Kommentar von dir. – b1nary

3

In Bezug auf die Duplizierung - ich habe mich dafür entschieden, den CustomerKey nur lokal in meinen Benutzerdatensätzen zu speichern. Alles andere, Rechnungen, Transaktionen usw. werden alle in Stripe gespeichert. IMO am besten nicht zu versuchen, die Parität zwischen beiden Systemen zu halten - im besten Fall haben Sie doppelte Daten, im schlimmsten Fall, werden Sie alle Arten von Kopfschmerzen verursachen, indem Sie nicht synchron ...

+1

Huh Ich habe versucht, die Parität nicht zwischen zu halten, aber ich wollte den Status des Kontos verwenden, um Fehlermeldungen beim Laden der Seite anzuzeigen, aber Aufrufe von Stripe nahmen zu lange um den Status zu erhalten, und das Laden der Seite dauerte lange. – hajpoj

+1

Was ist mit Caching Stripe Anrufe? Probleme beim Laden von Seiten treten nur auf, wenn ein API-Aufruf zum ersten Mal ausgeführt wird.Nachfolgende Aufrufe werden aus dem Cache herausgezogen –

+0

@ChristianFazzini Ich weiß, es ist ein paar Jahre, aber ich nehme an, Sie sprechen über Stripe.js für diese Aufrufe und einen Cache, oder gibt es eine Art von serverseitigen Cache, der verwendet werden kann ? –