Abos und einmalige Käufe verwalten

Im Rahmen des Tagesgeschäfts müssen Sie möglicherweise Verwaltungsmaßnahmen für Abos oder einmalige Käufe ergreifen. Es kann beispielsweise sein, dass dein Kundenservice Nutzern vollständige oder teilweise Erstattungen gewähren oder in bestimmten Fällen Berechtigungen widerrufen müssen. Du kannst Bestellungen über die Play Console verwalten oder die Google Play Developer API verwenden, wenn du sie in deinem eigenen System verwalten möchtest.

Abos kündigen

Nutzer können ein Google Play-Abo jederzeit über den Play Store kündigen. Sie müssen ihnen aber auch die Möglichkeit bieten, ihre Abos in Ihrer App und auf Ihrer Website zu kündigen, falls zutreffend.

Am einfachsten können Nutzer ihre Mitgliedschaft freiwillig kündigen, indem sie einen Deeplink zum Play Store einrichten. Dort können sie ihr Abo aufrufen und verwalten.

Möglicherweise müssen Sie auch Stornierungen von Ihrem Backend aus auslösen. Mit der Methode purchases.subscriptions.cancel kannst du einen Abokauf stornieren. Sie können diese Methode beispielsweise verwenden, um einen Legacy-Dienst zu deaktivieren. Durch die Kündigung eines Abos wird keine Erstattung veranlasst und der Nutzer hat bis zum Ende des aktuellen Abrechnungszeitraums weiterhin Zugriff. Durch die Kündigung eines Abos mit dieser Methode wird verhindert, dass der Nutzer das Abo im Play Store wiederherstellen kann. Nutzer können sich aber bei Bedarf wieder über deine App registrieren.

Durch diese Aktion wird eine Entwicklerbenachrichtigung in Echtzeit vom Typ SUBSCRIPTION_CANCELED ausgelöst. Verarbeite diese Stornierungen wie unter Kündigungen beschrieben.

Abrechnung auf später verschieben

Verwende subscriptions.defer, um den Berechtigungszeitraum für ein Abo zu verlängern. Während des Aufschubzeitraums bleibt das Abo des Nutzers Ihre Inhalte erhalten, die zusätzliche Zeit wird jedoch nicht in Rechnung gestellt. Wenn Sie die Abrechnung für ein Abo verschieben, werden die Statusinformationen entsprechend aktualisiert und im Feld expiryTime in den Kaufstatusinformationen angezeigt:

  • Bei aktiven wiederkehrenden Abos verlängert sich die ausgesetzte Abrechnung auf das nächste Verlängerungsdatum.
  • Bei Prepaid-Tarifen verlängert die verzögerte Abrechnung die Ablaufzeit.

Beispiele für die Verwendung der verzögerten Abrechnung:

  • Biete Nutzern im Rahmen eines Sonderangebots kostenlosen Zugang, z. B. eine Woche lang kostenlos für die Teilnahme an einer Feedback-Umfrage.
  • Gewähren Sie Kunden im Rahmen der Kundenbetreuung kostenlosen Zugriff, z. B. nach einem längeren Ausfall, der die Nutzung Ihres Dienstes beeinträchtigt haben könnte.

Die Abrechnung kann pro API-Aufruf nur um einen Tag und bis zu einem Jahr verschoben werden. Wenn du das Ende der Berechtigung noch weiter verschieben möchtest, rufe die API noch einmal auf, bevor das neue Ablaufdatum erreicht wird.

Durch diese Aktion wird eine Entwicklerbenachrichtigung in Echtzeit vom Typ SUBSCRIPTION_DEFERRED ausgelöst. Weitere Informationen zum Umgang mit diesen Ereignissen findest du unter Abrechnung für einen Abonnenten auf später verschieben im Artikel Abos.

Beispiel:

  1. Der Streamingdienst FitnessGoals möchte im Februar eine Promotion durchführen, um regelmäßiges Training zu fördern.

  2. Er beschließt, jedem Abonnenten, der im Februar mindestens zehnmal mit FitnessGoals trainiert, einen zusätzlichen Monat anzubieten.

  3. Sie verfolgen die Ergebnisse der Herausforderung und rufen am 1. März die subscriptions.defer API für jeden aktiven Abokauf von Nutzern auf, die die Herausforderung im Februar gelöst haben.

  4. Diese Nutzenden können kostenlos einen ganzen Monat lang regelmäßige Trainingsvideos ansehen. Die Nutzer erzählen allen ihren Freunden, wie FitnessGoals ihnen hilft, gesund zu bleiben!

Erstattungen und Widerrufe veranlassen

Es gibt viele Situationen, in denen Sie eine Erstattung für ein Abo oder einen einmaligen Kauf veranlassen oder den Zugriff darauf widerrufen möchten.

Vollständige Erstattung einer Bestellung nach Bestell-ID

Mit der orders.refund API kannst du innerhalb von drei Jahren nach dem Kauf vollständige Erstattungen für jede Bestellung veranlassen. Die Methode orders.refund empfängt einen Widerrufsparameter, der angibt, ob der Zugriff widerrufen werden soll, zusätzlich zur Erstattung.

Wenn Sie den Erstattungsaufruf für den Abokauf widerrufen, wird das Abo sofort beendet und eineSUBSCRIPTION_REVOKEDEntwicklerbenachrichtigung in Echtzeit wird ausgelöst. Im Leitfaden zur Verwaltung des Abolebenszyklus erfährst du, wie du mit diesen Ereignissen umgehen kannst.

Beispiel:

  1. Zur Feier der neuen WM beschließt die E-Sport-App „Football-Not-Soccer“, kostenlose virtuelle Trikots für alle Nutzer zu verlosten, die in den ersten 24 Stunden neue Teamtrikots kaufen.

  2. Football-Not-Soccer verwendet die orders.refund API, ohne einen Widerrufsparameter zu übergeben, um den Gewinnern die gekauften Trikots zu erstatten.

Abo mit Kauftoken widerrufen und erstatten

In bestimmten Anwendungsfällen müssen Sie möglicherweise den Zugriff auf das Abo eines Nutzers widerrufen und ihm erstatten. Play Billing bietet teilweise Erstattungen, einschließlich anteilige Erstattungen, die du über die subscriptionsv2.revoke API veranlassen kannst. Bei diesem Endpunkt kannst du revocationContext angeben, um festzulegen, wie die Erstattung berechnet wird.

Durch diese Aktion wird eine SUBSCRIPTION_REVOKED-Entwicklerbenachrichtigung in Echtzeit ausgelöst. Die Anwendung sollte diese Kündigungen wie unter Widerruf beschrieben verarbeiten.

Beispiel:

  • Mit Kauftoken 1a2b3c4d5e6f7g8h9i0j kaufen
  • App mit dem Paketnamen com.your.app
  • Absicht einer anteilige Erstattung

HTTP POST-Anfrage:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

Anfragetext:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

Anteilige Erstattungen

Wenn Sie ein Abo kündigen und die verbleibende Berechtigungszeit teilweise erstatten müssen, veranlassen Sie eine anteilige Erstattung. Verwende die Funktion purchases.subscriptionsv2.revoke und lege "proratedRefund": {} als Erstattungstyp fest.

Beispiel:

  1. Maria hat ein sich automatisch verlängerndes 30-tägiges SuperMovies-Streaming-Monatsabo. Sie nutzt den Dienst schon seit einiger Zeit gerne. Maria kontaktiert am 15. Tag ihres Abrechnungszeitraums den Kundenservice und gibt an, dass sie ins Ausland umzieht und den Dienst ab dem nächsten Tag nicht mehr nutzen kann.

  2. Der Kundenservice sucht im System nach den Details zum Abokauf von Maria und löst einen Aufruf an purchases.subscriptionsv2.revoke aus, um eine anteilige Erstattung anzufordern.

  3. Der Kundenservice teilt Maria mit, dass sie etwa 50% des Abopreises erstattet bekommen soll und dass der Zugriff auf den Dienst sofort eingestellt wird.