Abos und einmalige Käufe verwalten

Im Rahmen des Tagesgeschäfts müssen Sie möglicherweise Verwaltungsaktionen für Abos oder einmalige Käufe ausführen. Ihr Kundenservice muss beispielsweise möglicherweise vollständige oder teilweise Erstattungen für Nutzer veranlassen oder Sie müssen in bestimmten Fällen Berechtigungen widerrufen. Sie können Bestellungen in der Play Console verwalten. Wenn Sie sie in Ihrem eigenen System verwalten möchten, können Sie dazu die Google Play Developer API verwenden.

Abos kündigen

Abo-Kündigungen können von Nutzern oder Entwicklern initiiert werden.

Vom Nutzer initiierte Kündigungen

Nutzer können ein Google Play-Abo jederzeit über den Play Store kündigen. Falls zutreffend, müssen Sie Nutzern auch eine Option zum Kündigen ihrer Abos in Ihrer App und auf Ihrer Website bereitstellen.

Am einfachsten können Sie Nutzern die Möglichkeit geben, ihr Abo freiwillig zu kündigen, indem Sie Deeplinks in Ihrer App zum Google Play Store bereitstellen, über die sie ihre Abos aufrufen und verwalten können.

Vom Entwickler veranlasste Kündigungen

Als Entwickler müssen Sie möglicherweise auch Kündigungen über Ihr Backend auslösen. Mit der purchases.subscriptions.cancel-API können Sie einen Abokauf kündigen. Sie können diese Methode beispielsweise verwenden, um einen alten Dienst zu deaktivieren. Wenn Sie ein Abo kündigen, wird keine Erstattung gewährt und der Nutzer behält den Zugriff bis zum Ende des aktuellen Abrechnungszeitraums.

Mit dieser Methode können Sie die folgenden Arten von Kündigungen im Parameter cancellationType des Anfragetexts angeben:

  • USER_REQUESTED_STOP_RENEWALS: Das Abo wird so gekündigt, als hätten Nutzer es über den Google Play Store gekündigt. Ratenzahlungen werden für den Rest des aktuellen Zusicherungszeitraums fortgesetzt. Nutzer können das Abo im Google Play Store vor Ablauf wiederherstellen oder nach Ablauf neu abonnieren, sofern dies für den Basis-Abo aktiviert ist.

  • DEVELOPER_REQUESTED_STOP_PAYMENTS: Das Abo wird gekündigt und weitere Zahlungen werden verhindert. Nutzer können das Abo nicht über den Google Play Store wiederherstellen oder neu abonnieren. Sie können ihnen jedoch ermöglichen, das Abo in Ihrer App neu abzuschließen.

Nutzern ermöglichen, nicht abgelaufene Abos wiederherzustellen

In einigen Fällen kann es hilfreich sein, Nutzern zu erlauben, nicht abgelaufene Abos über das Abocenter von Google Play wiederherzustellen, nachdem Sie als Entwickler die Kündigung ausgelöst haben. Sie können beispielsweise einen benutzerdefinierten In-App-Abo-Kündigungsprozess anbieten. Anhand Ihrer Geschäftslogik können Sie entscheiden, welche Kündigungen, die von Ihrem Backend ausgelöst wurden, von Nutzern wiederhergestellt werden können.

Wenn Sie angeben möchten, dass ein Nutzer die Kündigung rückgängig machen kann, senden Sie eine POST-Anfrage an die purchases.subscriptions.cancel API und legen Sie den Anfrageparameter cancellationType auf den Wert USER_REQUESTED_STOP_RENEWALS fest.

Beispiel:

  • Kauftoken des Abos 1a2b3c4d5e6f7g8h9i0j
  • Paketname der App com.your.app
  • Abo-ID: your-subscription-product

HTTP-POST-Anfrage:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel

Anfragetext:

{
  "cancellationType": "USER_REQUESTED_STOP_RENEWALS"
}

Nutzern ermöglichen, abgelaufene Abos neu abzuschließen

Damit ein abgelaufenes Abo wieder abonniert werden kann, müssen Sie die Option Erneut abonnieren im Basis-Abo des Abos aktivieren und das Abo dann kündigen, indem Sie den Parameter cancellationType auf den Wert USER_REQUESTED_STOP_RENEWALS festlegen.

Nutzern die erneute Registrierung nur in Ihrer Anwendung ermöglichen

Wenn Sie den Parameter cancellationType auf DEVELOPER_REQUESTED_STOP_PAYMENTS festgelegt haben oder cancellationType nicht festgelegt haben, können Nutzer ihr Abo nicht über das Play-Abozentrum wiederherstellen. Nutzer können sich jedoch bei Bedarf über Ihre App noch einmal für das Abo registrieren.

Durch diese Aktion wird eine SUBSCRIPTION_CANCELED-Entwicklerbenachrichtigung in Echtzeit ausgelöst. Gehen Sie bei diesen Kündigungen wie unter Kündigungen beschrieben vor.

Abrechnung aufschieben

Mit der Methode subscriptionsv2.defer können Sie den Berechtigungszeitraum für ein Abo verlängern. Wenn Sie ein Abo mit Add-ons nach hinten verschieben, werden alle Elemente im Abo um denselben Zeitraum nach hinten verschoben. Während des Aufschubzeitraums bleibt der Nutzer Abonnent Ihrer Inhalte, ihm wird die zusätzliche Zeit jedoch nicht in Rechnung gestellt. Wenn Sie die Abrechnung für ein Abo nach hinten verschieben, werden die Statusinformationen entsprechend aktualisiert und im Feld expiryTime in den Kaufstatusinformationen angezeigt:

  • Bei aktiven fortlaufenden Abos wird durch die verzögerte Abrechnung das nächste Verlängerungsdatum verschoben.
  • Bei Prepaid-Tarifen wird durch die verzögerte Abrechnung die Ablaufzeit verlängert.

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

  • Nutzer können im Rahmen eines Angebots kostenlos auf Inhalte zugreifen, z. B. eine Woche lang, wenn sie eine Feedbackumfrage ausfüllen.
  • Gewähren Sie Kunden kostenlosen Zugriff als Kundenservice, z. B. nach einem längeren Ausfall, der ihre Fähigkeit, Ihren Dienst zu nutzen, beeinträchtigt haben könnte.

Die Abrechnung kann pro API-Aufruf um einen Tag bis zu einem Jahr aufgeschoben werden. Wenn Sie das Ende des Anspruchs noch weiter hinauszögern möchten, rufen Sie die API vor dem neuen Ablaufdatum noch einmal auf.

Durch diese Aktion wird eine SUBSCRIPTION_DEFERRED-Entwicklerbenachrichtigung in Echtzeit ausgelöst. Informationen zum Umgang mit diesen Ereignissen finden Sie unter Abrechnung für einen Abonnenten aufschieben im Hilfeartikel Abos.

Beispiel:

  1. Der Streamingdienst FitnessGoals möchte im Februar eine Werbeaktion starten, um Nutzer zu regelmäßiger Bewegung zu motivieren.

  2. Sie beschließen, allen Abonnenten, die im Februar mindestens zehnmal mit FitnessGoals trainieren, einen zusätzlichen Monat lang Zugriff auf den Dienst zu gewähren.

  3. Sie verfolgen die Ergebnisse der Challenge und rufen am 1. März die Methode subscriptionsv2.defer für jeden aktiven Abo-Kauf von Nutzern auf, die die Challenge im Februar abgeschlossen haben.

  4. Diese Nutzer erhalten einen zusätzlichen vollen Monat lang kostenlose Trainingsvideos und 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.

Eine Bestellung anhand der Bestell-ID vollständig erstatten

Mit der orders.refund-API können Sie innerhalb von drei Jahren nach dem Kauf vollständige Erstattungen für jede Bestellung veranlassen. Die Methode orders.refund empfängt einen „revoke“-Parameter, der angibt, ob der Zugriff zusätzlich zur Erstattung widerrufen werden soll.

Wenn Sie einen Widerruf mit dem Erstattungsaufruf für den Abo-Kauf ausstellen, wird das Abo sofort gekündigt und eineSUBSCRIPTION_REVOKED-Entwicklerbenachrichtigung in Echtzeit wird ausgelöst. Im Leitfaden zum Verwalten des Abolebenszyklus findest du im Abschnitt zu Widerrufen Informationen zum Umgang mit diesen Ereignissen.

Beispiel:

  1. Anlässlich des Beginns der neuen Fußball-Weltmeisterschaft verlost die E-Sports-App Football-Not-Soccer kostenlose virtuelle Trikots für alle Nutzer, die in den ersten 24 Stunden neue Team-Kits kaufen.

  2. Football-Not-Soccer verwendet die orders.refund-API, ohne einen „revoke“-Parameter zu übergeben, um den Gewinnern die Trikotkäufe zu erstatten.

Abo anhand des Kauf-Tokens widerrufen und erstatten

In bestimmten Anwendungsfällen müssen Sie möglicherweise den Zugriff auf das Abo eines Nutzers widerrufen und eine Erstattung vornehmen. Play Billing bietet Widerrufsmethoden wie vollständige und anteilige Erstattungen über die subscriptionsv2.revoke API. Mit diesem Endpunkt können Sie revocationContext angeben, um festzulegen, wie die Erstattung berechnet wird.

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

Beispiel:

  • Kauf mit dem Kauftoken 1a2b3c4d5e6f7g8h9i0j
  • Anwendung mit dem Paketnamen com.your.app
  • Absicht, eine anteilige Erstattung zu gewähren

HTTP-POST-Anfrage:

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

Anfragetext:

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

Vollständige Erstattungen

Wenn Sie ein Abo kündigen und den vollen Betrag des aktuellen Abrechnungszeitraums erstatten müssen, stellen Sie eine vollständige Erstattung aus. Verwenden Sie die Funktion purchases.subscriptionsv2.revoke und legen Sie "fullRefund": {} als Erstattungstyp fest.

Beispiel:

  1. Maria hat ein 30‑Tages-Abo für SuperMovies-Streaming, das sich monatlich automatisch verlängert. Maria hat einige technische Probleme, die sie daran hindern, auf die Inhalte zuzugreifen. Am dritten Tag ihres Abrechnungszeitraums wendet sie sich an den Kundenservice und gibt an, dass sie nie Zugriff auf das Abo erhalten hat.

  2. Der Kundenservice findet die Details zum Kauf des Abos von Maria in seinem System und löst einen Anruf bei purchases.subscriptionsv2.revoke aus, um eine vollständige Erstattung zu beantragen.

  3. Der Kundenservice teilt Maria mit, dass sie 100% des Abopreises erstattet bekommt und dass sie das Abo nicht mehr hat.

Anteilige Erstattungen

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

Teilerstattungen werden sowohl für Abos mit automatischer Verlängerung als auch für Prepaid-Tarife mit einer Laufzeit von mindestens einer Woche unterstützt.

Beispiel:

  1. Maria hat ein sich automatisch verlängerndes 30‑Tages-Abo für den SuperMovies-Streamingdienst mit monatlicher Abrechnung. Sie nutzt den Dienst seit einiger Zeit gern. Maria kontaktiert am 15. Tag ihres Abrechnungszeitraums den Kundenservice und teilt mit, dass sie ins Ausland zieht und den Dienst ab dem nächsten Tag nicht mehr nutzen kann.

  2. Der Kundenservice findet die Details zum Kauf des Abos von Maria in seinem System und löst einen Anruf an purchases.subscriptionsv2.revoke aus, um eine anteilige Erstattung zu beantragen.

  3. Der Kundenservice teilt Maria mit, dass sie etwa 50% des Abopreises erstattet bekommt und der Zugriff auf den Dienst sofort beendet wurde.