Wir haben begonnen, Stripe on Redsmin (eines unserer Projekte) zu implementieren, und ich denke, wir haben möglicherweise etwas verpasst. So funktioniert es:
Um unser Produkt nutzen zu können, muss der Benutzer einen Tarif auswählen (kostenlos, s, m, xl, xxl ...), dann sein Login / Passwort eingeben und anschließend eine kostenlose 30-Tage-Testversion starten. Wenn der Benutzer das Formular abschickt , ruft unser Server Stripe create_customer mit dem angegebenen Plan und ohne Kreditkarte auf (da wir 30 Tage kostenlos anbieten möchten, ohne dass eine Kreditkarte erforderlich ist), und wir aktualisieren das Benutzermodell auf unserer Seite mit dem zurückgegebenen
customer_id
undsubscription_id
.Wir legen Webhook bis zu Streifen Ereignisse erhalten so nach 30 Tagen unsere Webhook sollte ein
customer.subscription.updated
Empfangsereignis mit einemobject.status == active
. Habe ich recht?Da wir jedoch bei der Anmeldung keine zugehörige Karte für den Benutzer angegeben haben, sollten wir nach einem anderen
customer.subscription.updated
Ereignis schnell mitobject.status == unpaid
Recht erhalten? Dann deaktivieren wir auf unserer Seite das Benutzerkonto und zwingen es, auf unsere Planauswahlseite zu gehen.Von da an kann der Benutzer entweder den kostenlosen Plan oder einen unserer Premium-Pläne auswählen:
#Szenario 1 Wenn der Benutzer den kostenlosen Plan auswählt, reaktivieren wir einfach sein Konto auf unserer Seite und tun nichts anderes, da wir den kostenlosen Plan auf Streifen so konfiguriert haben, dass er 0 $ kostet. Haben wir mit unserem kostenlosen Plan den richtigen Prozess implementiert? Gibt es bessere Möglichkeiten?
# Szenario 2 Wenn der Benutzer einen Premium- Tarif auswählt, leiten wir ihn auf ein Kreditkartenformular um, das dann an Stripe gesendet wird, und aktualisieren das Stripe-Kundenkonto mit dem temporären Karten-Token.Was sollen wir als nächstes tun? ::
- Sollen wir auf Streifen warten, um uns eine Veranstaltung zu schicken? Wenn ja, welche Veranstaltung?
customer.subscription.updated
?charge.succeeded
? Was wird der Wert vonobject.status
dann sein? - Sollten wir das Benutzerkonto auf unserer Seite direkt reaktivieren und auf eine Bestätigung von stripe warten? Wenn ja, auf welchen Ereignisnamen und welche Daten sollten wir warten?
- Sollen wir auf Streifen warten, um uns eine Veranstaltung zu schicken? Wenn ja, welche Veranstaltung?
Antworten:
In Teil 2, wo Sie dies tun:
Sie können auch die Implementierung von in Betracht ziehen
customer.subscription.trial_will_end
Webhooks in ziehen. Dieser Webhook wird drei Tage vor Ende der Testversion des Kunden gesendet und ermöglicht es Ihnen, dem Kunden eine Benachrichtigung zu senden, um seine Zahlungsinformationen zu aktualisieren.Auf diese Weise kann Stripe, wenn der Benutzer seine Zahlungsinformationen aktualisiert, die Zahlung annehmen, sobald die Testversion des Kunden beendet ist, und Ihren Dienst ohne Unterbrechung weiter nutzen.
Soweit ich weiß, ist dies der beste Weg, um kostenlose Pläne mit Stripe zu implementieren. Ich würde wahrscheinlich nur sicherstellen, dass Kunden keine Rechnungen erhalten, es sei denn, dies ist erforderlich. Ich bezweifle, dass Benutzer erwarten würden, eine Rechnung für jeden Abrechnungszeitraum zu erhalten, wenn sie einen kostenlosen Plan verwenden.
Sobald der Benutzer einen Plan ausgewählt und seine Zahlungsinformationen aktualisiert hat, würde ich sein Konto sofort aktivieren, vorausgesetzt, die Antwort auf das Abonnement-Update von Stripe war erfolgreich.
Solange Sie Ihre Abonnementeinstellungen über Ihr Stripe-Dashboard konfiguriert haben, sollten Sie Stripe überlassen können, was zu tun ist, wenn die Zahlung fehlschlägt.
customer.subscription.updated
Stellen Sie einfach sicher, dass Sie den Webhook implementieren, da dies der Webhook ist, den Stripe Ihnen sendet, wenn ein Abonnement als unbezahlt oder gekündigt markiert wird, sodass Sie Ihre eigenen Datensätze entsprechend aktualisieren können.quelle