Ausstehende Aktualisierungen
So gehen Sie bei der Aktualisierung von Abonnements mit fehlgeschlagenen Zahlungen um.
In folgenden Fällen wird beim Aktualisieren eines Abonnements eine neue Rechnung generiert:
- Das Abonnement erfordert erstmalig eine Zahlung, beispielsweise nach Ablauf eines Testzeitraums.
- Der Abrechnungszeitraum ändert sich.
- Das Ändern des Abonnement führt zu einer anteilmäßigen Verrechnung und
proration_
.behavior=always_ invoice
Standardmäßig führt Stripe Aktualisierungen unabhängig davon durch, ob die Zahlung für die neue Rechnung erfolgreich ist. Wenn die Zahlung fehlschlägt, müssen die Aktualisierungen manuell zurückgesetzt werden. Sie müssen eine neue Rechnung erstellen, die Rechnungsposten anteilmäßig verrechnen und dann die Zahlung erneut veranlassen. Mit der Funktion für ausstehende Aktualisierungen können Sie allerdings nur dann Änderungen an Abonnements vornehmen, wenn die Zahlung für die neue Rechnung erfolgreich ist.
Bevor Sie loslegen
Sie können ausstehende Aktualisierungen verwenden, wenn die collection_method des Abonnements charge_
ist oder wenn die Zahlungsmethode des Abonnements entweder eine Karte oder ein Link ist.
Abonnement aktualisierenServerseitig
Sie können ausstehende Aktualisierungen mit den Aufrufen Abonnement aktualisieren, Abonnement-Artikel erstellen und Abonnement-Artikel aktualisieren verwenden. Wenn Sie die Aktualisierung vornehmen, legen Sie payment_
fest. Im folgenden Beispiel wird einem Abonnement ein neuer Preis hinzugefügt. Aufgrund von proration_
wird eine Rechnung erstellt und es erfolgt ein Zahlungsversuch, sobald die Aktualisierung vorgenommen wurde.
Wenn die Zahlung erfolgreich ist, wird das Abonnement aktualisiert. Schlägt sie fehl, enthält das zurückgegebene Objekt Subscription
den Hash pending_
mit den Änderungen:
{ "id": "sub_49ty4767H20z6a", "object": "subscription", "application_fee_percent": null, "pending_update": { "expires_at": 1571194285, "subscription_items": [ { "id": "si_09IkI4u3ZypJUk5onGUZpe8O", "price": "price_CBb6IXqvTLXp3f" } ] }, }
Umgang mit fehlgeschlagenen ZahlungenClientseitig
Überprüfen Sie nach der Aktualisierung den pending_
-Hash des Abonnements oder überwachen Sie das Ereignis customer.
in Ihrem Webhook. Ein ausgefüllter pending_
-Hash bedeutet, dass die Zahlung fehlgeschlagen ist und Ihre Abonnementaktualisierung nicht angewendet wird.
Erstellen Sie eine Logik für den Umgang mit fehlgeschlagenen Zahlungen aufgrund von abgelehnten Karten und Anfragen zur Kundenauthentifizierung:
- Bei Kartenablehnungen weisen Sie der Kundin/dem Kunden eine neue Zahlungsmethode zu. Verwenden Sie dann den Endpoint zum Bezahlen, um die bei der Aktualisierung generierte Rechnung zu bezahlen.
- Befolgen Sie für die Kundenauthentifizierung den Ablauf Aktion erforderlich.
Bei erfolgreicher Zahlung werden die Änderungen im Hash pending_
sofort übernommen und der Status der Rechnung auf paid
aktualisiert.
Wenn die Zahlung erneut fehlschlägt, bleibt der pending_
-Hash für das Abonnement beim ursprünglichen Ablaufdatum und es werden keine Änderungen angewendet.
Unterstützte Attribute für ausstehende Aktualisierungen
Ausstehende Aktualisierungen unterstützen nur Attribute, die das Verhalten bei der anteilmäßigen Verrechnung steuern oder neue Rechnungen generieren.
Der Endpoint zur Aktualisierung eines Abonnements unterstützt die folgenden Attribute:
expand
payment_
behavior proration_
behavior proration_
date billing_
cycle_ anchor items
price
quantity
trial_
end trial_
from_ plan add_
invoice_ items
Die Endpoints zum Erstellen eines Abonnement-Eintrags und zur Aktualisierung eines Abonnement-Eintrags unterstützen die folgenden Attribute:
expand
payment_
behavior proration_
behavior proration_
date price
quantity
Abgelaufene Updates
Wenn Sie nach einer fehlgeschlagenen Aktualisierung nichts unternehmen, storniert Stripe die Rechnung und verwirft die Aktualisierung nach deren Ablauf.
Der expired_
-Zeitpunkt einer ausstehenden Aktualisierung stimmt mit dem ersten Vorkommen entweder des Endes des Testzeitraums oder des frühesten Endes des items.current-Zeitraums überein. Dies gilt, wenn einer der beiden Zeitpunkte innerhalb von 23 Stunden nach der Aktualisierungsanfrage liegt. Andernfalls beträgt die Ablauffrist 23 Stunden nach der Aktualisierungsanfrage.
Stripe storniert außerdem automatisch die Rechnung und entfernt die ausstehende Aktualisierung, wenn Folgendes geschieht:
- Das Abrechnungslimit des Abonnements ist erreicht.
- Ein mit dem Abonnement verknüpfter Abonnementplan geht in eine neue Phase über.
Ereignisse im Zusammenhang mit ausstehenden Aktualisierungen
Verwenden Sie Webhooks, um die folgenden Ereignisse im Zusammenhang mit ausstehenden Aktualisierungen zu überwachen:
Ereignis | Zweck |
---|---|
customer. | Empfangen von Benachrichtigungen für Abonnements, Prüfen auf den Hash pending_ und Beheben von fehlgeschlagenen Zahlungen, falls erforderlich. |
customer. | Empfang von Benachrichtigungen, wenn ausstehende Aktualisierungen angewendet werden, sodass Sie weitere Maßnahmen ergreifen können, wie beispielsweise Upgrades, Downgrades, Bereitstellung oder Aufhebung der Bereitstellung von Dienstleistungen. |
customer. | Empfang von Benachrichtigungen, wenn ausstehende Aktualisierungen ablaufen oder automatisch storniert werden, und bei Bedarf erneute Durchführung der Aktualisierungsanfrage |
Ausstehende Aktualisierungen und Abonnementpläne
Sie können sowohl ausstehende Aktualisierungen als auch Abonnementpläne verwenden, um Abonnements zu verwalten. Durch eine Änderung der Zeitplanphase wird eine ausstehende Aktualisierung verworfen und die zugehörige Rechnung wird storniert. Wiederholen Sie die Aktualisierungsanfrage nach dem Phasenwechsel, falls erforderlich.
Nutzungsbasierte Artikel
Wenn ein Abonnement nutzungsbasierte Artikel enthält, rechnet Stripe jede ausstehende Nutzung auf der Rechnung für die ausstehende Aktualisierung ab. Wenn die ausstehende Aktualisierung jedoch vor der Zahlung abläuft, verwirft Stripe diese Nutzung. Dadurch wird verhindert, dass sie in nachfolgenden Rechnungen abgerechnet wird.
Wenn durch die ausstehende Aktualisierung ein nutzungsbasierter Preis entfernt wird, ignoriert Stripe jegliche zwischen der Erstellung der ausstehenden Aktualisierung und der daraus resultierenden Rechnungszahlung gemeldete Nutzung. Diese Nutzung kann nicht in Rechnung gestellt werden. Wenn das Abonnement jedoch billing_
beinhaltet, wird Stripe die Nutzung in Rechnung gestellt, wenn ein nutzungsbasierter Preis entfernt wird.