Abokäufe können während des hängt von vielen Faktoren ab, z. B. bei automatischen Verlängerungen, Ablehnungssituationen und Maßnahmen des Entwicklermanagements.
Lebenszyklus für sich automatisch verlängernde Abos verwalten
Wenn sich der Abostatus eines Nutzers ändert, empfängt Ihr Backend-Server eine
SubscriptionNotification
Nachricht
Rufen Sie zum Aktualisieren des Status in Ihrem Back-End die Methode
purchases.subscriptionsv2.get
API mit dem in der Benachrichtigung enthaltenen Kauftoken. Dieser Endpunkt bietet
aktuellen Abostatus mit einem Kauftoken. Er gilt als
für die Aboverwaltung.
Das Kauftoken ist ab der Abo-Registrierung bis zu 60 Tage nach der Anmeldung gültig. Gültigkeit haben. Nach diesem Datum kann das Kauftoken nicht mehr für Folgendes verwendet werden: die Google Play Developer API aufzurufen.
Käufe von Abos, die sich automatisch verlängern
Wenn ein Nutzer ein Abo erwirbt, wird eine SubscriptionNotification
-Nachricht mit
Der Typ SUBSCRIPTION_PURCHASED
wird an deinen RTDN-Client gesendet. Ob Sie
oder einen neuen In-App-Kauf über
PurchasesUpdatedListener
oder manuell Käufe abrufen
onResume()
-Methode der App verwenden, sollten Sie den neuen Kauf in Ihrem sicheren
Back-End. Gehen Sie hierzu folgendermaßen vor:
- Fragen Sie die
purchases.subscriptionsv2.get
Endpunkt eines Abonnements Ressource die den aktuellen Abostatus enthält. - Stellen Sie sicher, dass der Wert des
subscriptionState
istSUBSCRIPTION_STATE_ACTIVE
. - Bestätigen Sie den Kauf.
- Gewähren Sie dem Nutzer Zugriff auf die Inhalte. Das mit der
kann mit dem Attribut
ExternalAccountIdentifiers
Objekt aus der Aboressource, wenn beim Kauf IDs festgelegt wurden Zeit mitsetObfuscatedAccountId
undsetObfuscatedProfileId
Die Play Billing Library bietet auch
eine Methode zur Bestätigung eines Abos,
acknowledgePurchase()
,
und eine Methode zur Überprüfung des Bestätigungsstatus,
isAcknowledged()
Wir empfehlen Ihnen jedoch, die Kaufabwicklung im Backend für
mehr Sicherheit.
Die Aboressource für neue Käufe sieht in etwa so aus: Beispiel:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_PENDING", // need to acknowledge new purchases
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
Verlängerung von Abos
Für Abos mit automatischer Verlängerung ohne Ratenzahlung: SUBSCRIPTION_RENEWED
wird gesendet, wenn das Abo verlängert wird. Für Ratenzahlungen
Abos, wird jedes Mal eine SUBSCRIPTION_RENEWED
-Benachrichtigung gesendet,
wird das Abo am Abrechnungsdatum in Rechnung gestellt. Stellen Sie sicher, dass sich der Nutzer
und aktualisieren dann den Abostatus mit dem neuen
expiryTime
im Abo enthalten
Ressource, die von Google Play zurückgegeben wird
Developer API Die Aboressource sieht in etwa so aus:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED",
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
]
}
Aboverlängerungen müssen nicht bestätigt werden.
Kulanzzeitraum
Bei Zahlungsproblemen mit einer Aboverlängerung benachrichtigt Google und versucht regelmäßig, das Abo vor dem läuft das Abo ab. Dieser Wiederherstellungszeitraum kann ein Kulanzzeitraum sein gefolgt von einer Kontosperre. Während eines Kulanzzeitraums muss der Nutzer weiterhin Zugriff auf die Aboberechtigung haben.
Die
queryPurchasesAsync()
werden weiterhin Käufe zurückgegeben, die im Kulanzzeitraum liegen. Wenn Ihre App
verwendet queryPurchasesAsync
, um zu prüfen, ob ein Nutzer Anspruch auf ein
Abo abgeschlossen haben, sollte Ihre App Kulanzzeiträume automatisch verwalten,
werden diese Abos in der Play Billing Library als aktiv angezeigt.
Wenn Sie den Abostatus mit Ihrem Backend synchronisieren,
von Zahlungsablehnungen erhalten. Außerdem erhalten Sie mehr Kontext zur Reduzierung unfreiwilliger
Abwanderung. Warte auf
SubscriptionNotification
Nachrichten
mit dem Typ SUBSCRIPTION_IN_GRACE_PERIOD
, um benachrichtigt zu werden, wenn der Nutzer eine
Kulanzzeitraum. Während sich der Nutzer in einem Kulanzzeitraum befindet, wird das Abonnement
Infomaterial
enthält autoRenewEnabled = true
. Google Play erweitert die
expiryTime
Wert, bis der Kulanzzeitraum abgelaufen ist, da die Berechtigung
sollte so lange gültig sein, bis der Nutzer das Abo kündigt oder der Kulanzzeitraum
Maximallänge. Der Wert des Feldes subscriptionState
in diesem Zeitraum beträgt
SUBSCRIPTION_STATE_IN_GRACE_PERIOD
. Die Aboressource sieht ungefähr so aus:
im folgenden Beispiel:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_IN_GRACE_PERIOD",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_future,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
Google Play informiert Nutzer im Kulanzzeitraum, dass ihre Zahlung abgelehnt wurde und fordert ihn auf, die Probleme mit der Zahlungsmethode im Play Store zu beheben. Wenn ein innerhalb eines Kulanzzeitraums für den Fall, dass der Fehler unfreiwillig war. Eine einfache Möglichkeit, Verwenden Sie hierzu das In-App-Messaging API hinzu. Wenn Sie diese API aufrufen, Wenn der Nutzer deine App öffnet, sieht er in einer vorübergehenden Snackbar, die den Nutzer darüber informiert, dass seine Zahlung abgelehnt wurde. Diese Nachricht enthält außerdem einen Deeplink, über den der Nutzer seine Zahlungsmethode auf Google korrigieren kann. Spielen.
Sobald der Nutzer seine Zahlungsmethode korrigiert hat, wird das Abo mit der ursprüngliches Verlängerungsdatum und können die Verlängerung wie in Verlängerungen:
Wenn der Nutzer seine Zahlungsmethode während des Kulanzzeitraums nicht korrigiert, wird das wird die Kontosperre aufgehoben und der Nutzer verliert die Berechtigung.
Zugriff auf den Kulanzzeitraum und Wiederherstellung
Abbildung 2 zeigt einen Zeitplan für ein Abo, für das ein Kulanzzeitraum gilt und wird wiederhergestellt, wenn der Nutzer seine Zahlungsmethode korrigiert. Nach dem Kulanzzeitraum endet, sollte der Nutzer seine Abovorteile verlieren und eine Kontosperre aktiviert haben.
<ph type="x-smartling-placeholder">![](https://developer.android.com/static/images/google/play/billing/lifecycle/grace-period.png?authuser=6&hl=de)
Beachten Sie die folgenden Punkte:
- Während eines Kulanzzeitraums sollte der Nutzer weiterhin auf die Abovorteile zugreifen können.
- Wenn ein Abo während eines Kulanzzeitraums wiederhergestellt wird, gilt das Verlängerungsdatum nicht zurückgesetzt.
- Wenn Sie den Kulanzzeitraum erhöhen, z. B. von 7 auf 14 Tage, sich im Kulanzzeitraum befinden, erhalten erweiterten Zugriff auf die Abovorteile.
- Wenn Sie den Kulanzzeitraum verkürzen, werden Nutzer, die sich weit genug in der alten Kulanzfrist befinden, nach Ablauf des Kulanzzeitraums ihre Abovorteile sofort widerrufen werden. Wenn Sie beispielsweise den Kulanzzeitraum von von 14 bis 7 Tagen hat, gilt für Nutzer, die zwischen 8 und 14 Tagen des alten werden die Abovorteile sofort widerrufen.
- Das Abo bleibt aktiv und Sie erhalten keinen Kulanzzeitraum. RTDN-Zeitraum bis zum Ende des stillen Kulanzzeitraums
Stiller Kulanzzeitraum
Du kannst einen Kulanzzeitraum von 0 Tagen festlegen, aber Google Play wartet mindestens einen Tag,
und dafür sorgen, dass genügend Zeit für Zahlungswiederholungen bleibt. Dieser stille Kulanzzeitraum bietet eine
Sicherheitsnetz für die Zahlungsabwicklung. Während dieser 24 Stunden
bleibt das Abo im
ACTIVE
Um über Änderungen am Abostatus auf dem Laufenden zu bleiben,
Entwicklerbenachrichtigungen in Echtzeit abhören und darauf reagieren Rufen Sie die Methode
purchases.subscriptionsv2.get()
auf die RTDN-Zeit statt auf die Ablaufzeit, um eine genauere
Status des Abos.
Je nach Abostatus nach der 24-Stunden-Kulanzzeitraum angezeigt wird, solltest du eine der folgenden Benachrichtigungen erhalten:
SUBSCRIPTION_ON_HOLD
(falls aktiviert)SUBSCRIPTION_CANCELED
(falls storniert)SUBSCRIPTION_EXPIRED
(falls abgelaufen)SUBSCRIPTION_RENEWED
(bei erfolgreicher Verlängerung)
Sie können die Methode subscriptionV2.get()
auch jederzeit nach der
24-stündiger Kulanzzeitraum im Hintergrund, um den neuesten Status des Abos abzurufen.
Kontosperre
Bei Zahlungsproblemen bei einer Aboverlängerung nach einer Kulanzzeitraum abgelaufen ist, beginnt eine Kontosperre. Wenn ein eine Kontosperre durchläuft, solltest du den Zugriff auf das Abo blockieren. Berechtigung.
Während der Kontosperre sollten Sie etwaige Kündigungen, Wiederherstellungen oder Wiederholungen von Abos, falls erforderlich, da der Nutzer diese Änderungen vornehmen kann, während das Abo wird gehalten.
Anhand von Echtzeitbenachrichtigungen wirst du informiert, wenn für einen Nutzer eine Kontosperre beginnt, so schnell wie möglich darüber informieren, warum ihr Zugriff auf das Abo gesperrt wurde. Das geht ganz einfach über das In-App-Messaging API hinzu. Diese API wird aufgerufen, wenn Der Nutzer öffnet die App. Dem Nutzer wird eine Nachricht in einer temporären Snackbar angezeigt. informiert sie darüber, dass ihre Zahlung abgelehnt wurde. Diese Nachricht enthält auch einen Deeplink, über den der Nutzer seine Zahlungsmethode bei Google Play korrigieren kann.
Wenn Ihre Nutzer außerhalb Ihrer App auf Aboinhalte zugreifen können, feststellen, dass sie auf verschiedenen Oberflächen keinen Zugriff mehr haben. Vielleicht möchten Sie Push-Benachrichtigung oder E-Mail an den Nutzer, um ihn darüber zu informieren, Abo ist aufgrund einer abgelehnten Zahlung nicht mehr aktiv.
Das Abonnement wird vom
queryPurchasesAsync()
Kontosperre aktiviert. Wenn eure App diese Methode benötigt, um
bestehende Käufe aktiviert haben, sollte die Kontosperre standardmäßig unterstützt werden.
Mit Echtzeit-Entwickler
erhalten Sie eine
SubscriptionNotification
Nachricht
vom Typ SUBSCRIPTION_ON_HOLD
, wenn für ein Abo eine Kontosperre aktiviert wird. Anruf
die
purchases.subscriptionsv2.get
von Ihrem sicheren Backend-Server, um das neue Abo abzurufen.
Informationen. Während der Kontosperre das Feld expiryTime
des Abos
Ressource
ist auf einen Zeitstempel in der Vergangenheit gesetzt und das Feld subscriptionState
ist auf
SUBSCRIPTION_STATE_ON_HOLD
:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ON_HOLD",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_past,
...
}
],
}
Um den Zugriff wiederherzustellen, müssen Nutzer ihre Zahlungsmethode korrigieren. Google Play informiert Nutzer einer abgelehnten Zahlung ausgesetzt sind, und bitten Sie den Kunden, das Problem zu beheben. ihre Zahlungsmethode.
Nachdem der Nutzer seine Zahlungsmethode korrigiert hat, wird das Abo wieder auf eine aktive
und Sie müssen dann den Zugriff auf die abonnierten Inhalte wiederherstellen. In diesem Fall
Das Kauftoken ist dasselbe wie vor Beginn der Kontosperre, weil
der Kauf wieder erholt wird und du eine RTDN mit dem
SUBSCRIPTION_RECOVERED
Bei Ratenabonnements kann es zu Zahlungsablehnungen und Wiedereinziehungen kommen aus folgenden Gründen: für jeden einzelnen Zahlungsversuch.
Nach der Wiederherstellung gibt die Play Billing Library das Abo über
die Methode queryPurchasesAsync()
. Wenn Sie mit dieser Methode feststellen,
wenn ein Nutzer Anspruch auf ein Abo hat, sollte deine App
wenn die Kontosperre aufgehoben wird.
Sie hören einen
SubscriptionNotification
Nachricht
mit dem Typ SUBSCRIPTION_RECOVERED
, um benachrichtigt zu werden, wenn ein Abo
und der Nutzer sollte wieder Zugriff erhalten. Wenn Sie ein Abo abfragen
Nach Erhalt dieser Benachrichtigung wird das Feld „expiryTime
“ auf einen Zeitstempel gesetzt
in der Zukunft liegen und das Feld subscriptionState
auf
Noch einmal SUBSCRIPTION_STATE_ACTIVE
:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
...
}
],
}
Wenn der Nutzer seine Zahlungsmethode nicht vor Ende der Kontosperre korrigiert
, erhältst du stattdessen ein RTDN vom Typ SUBSCRIPTION_CANCELED
. Für
Anweisungen zum Umgang mit einer Kündigung findest du unter Kündigungen. Wenn Sie
nach einem auf diese Weise gekündigten Abonnement sucht, wird der zurückgegebene
Das Feld expiryTime
ist auf einen Zeitstempel in der Vergangenheit gesetzt:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_CANCELED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_past,
...
}
],
}
Unmittelbar nach der Benachrichtigung über die Kontoauflösung
erhält auch eine RTDN vom Typ SUBSCRIPTION_EXPIRED
, weil der Nutzer
aus dem kostenpflichtigen Anspruch entfernt und das Abo ist mit der Kündigung abgewandert.
Sie können wie gewohnt auf das Ablaufdatum reagieren.
Der Nutzer kann den Zugriff wiedererlangen, indem er dasselbe Abo oder eine beliebige
andere Abos, die Sie über die App anbieten, während der
bei ihrem ursprünglichen Kauf. In diesem Fall wird ein neues Kauftoken ausgegeben und der
neuer Wert als Teil eines SUBSCRIPTION_PURCHASED
-Ereignisses zurückgegeben wird,
steht für diese neue Instanz.
Zugriff auf Kontosperre und Wiederherstellung
Abbildung 3 zeigt eine Zeitachse für ein Abo, für das eine Kontosperre gilt. wird wiederhergestellt, wenn der Nutzer seine Zahlungsmethode korrigiert.
<ph type="x-smartling-placeholder">![](https://developer.android.com/static/images/google/play/billing/lifecycle/acct-hold-1.png?authuser=6&hl=de)
Ähnlich wie im vorherigen Beispiel zeigt Abbildung 4 einen Zeitplan für ein Abo für die zuerst ein Kulanzzeitraum beginnt, bevor die Kontosperre aktiviert wird. erholt sich während der Warteschleife.
<ph type="x-smartling-placeholder">![](https://developer.android.com/static/images/google/play/billing/lifecycle/acct-hold-2.png?authuser=6&hl=de)
Beachten Sie die folgenden Punkte:
- Bevor eine Kontosperre für ein Abo aktiviert wird, stellt Google Play zusätzliche bis zu 48 Stunden lang versucht, Ihre Zahlungsmethode zu belasten. Der Nutzer behält Abovorteile zu nutzen. Nach Ablauf dieses Zeitraums wird die Kontosperre aktiviert und der Nutzer Abovorteile zu nutzen.
- Das Abo wird in die Kontosperre einbezogen, wenn es wird mit dem Status „Pausiert“ und einem fehlgeschlagenen Zahlungsmittel fortgesetzt.
- Wenn die Kontosperre für ein Abo wiederhergestellt wird, wird das Verlängerungsdatum zurückgesetzt.
Ablauf
Nach Ablauf eines Abos sollte der Nutzer keinen Zugriff mehr darauf haben. A
SubscriptionNotification
Nachricht vom Typ SUBSCRIPTION_EXPIRED
wurde gesendet in
in diesem Fall. Wenn du diese Benachrichtigung erhältst, frage den Google Play-Entwickler
API, um das neueste Abonnement zu erhalten
Ressource.
Nachdem Sie bestätigt haben, dass subscriptionState
SUBSCRIPTION_STATE_EXPIRED
ist,
entfernen Sie die Berechtigung und registrieren den Kaufstatus in Ihrem
Back-End. Die Aboressource sieht in etwa so aus:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_EXPIRED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time_in_past,
...
}
],
}
Kündigungen
Nutzer können Abos im Abocenter von Google Play freiwillig kündigen.
oder ihr Abo wird automatisch gekündigt, wenn sie nach
eine Kontosperre aktiv ist. Entwickler können auch eine
Stornierung mit
purchases.subscriptions.cancel
Wenn ein Abo gekündigt wird, hat der Nutzer so lange Zugriff auf die Inhalte, bis
bis zum Ende des aktuellen Abrechnungszeitraums. Nach Ablauf des Abrechnungszeitraums sollte der Zugriff
widerrufen werden.
Die Kündigung eines Abos ohne Ratenzahlung und Verlängerung des Abos löst einen
SUBSCRIPTION_CANCELED
Benachrichtigung. Wann?
erhalten Sie diese Benachrichtigung, wird das Abonnement
Infomaterial
die von der Google Play Developer API zurückgegeben wird, enthält das Feld subscriptionState
.
auf SUBSCRIPTION_STATE_CANCELED
gesetzt ist und das Feld expiryTime
den
Datum, an dem der Nutzer den Zugriff auf das Abo verlieren sollte. Wenn dieses Datum in
In der Vergangenheit sollte der Nutzer seine Berechtigung sofort verlieren. Das kann passieren,
Beispiel: Wenn ein Nutzer ein Abo kündigt, während er ein Konto hat
Zahlungsaussetzung aufgrund einer abgelehnten Zahlung.
Die Aboressource für einen stornierten Kauf sieht in etwa so aus: Beispiel:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_CANCELED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time,
...
}
],
}
Bei Ratenabos eine SUBSCRIPTION_CANCELLATION_SCHEDULED
wird bei einer vom Nutzer veranlassten Stornierung gesendet, wenn Zahlungen ausstehen
für die Mindestlaufzeit. Die Stornierung steht noch aus und wird am
Ende des aktuellen Zusicherungszeitraums. Wenn Sie diese Benachrichtigung erhalten,
der von der Google Play Developer API zurückgegebene Aboressource enthält
Das Feld "subscriptionState" wurde auf SUBSCRIPTION_STATE_ACTIVE
festgelegt, da das Feld
ist das Ratenabo bis zum Ende des Zusicherungszeitraums noch aktiv.
Es ist jedoch ein leeres ausstehendes Abbruchobjekt vorhanden.
Es wird eine SUBSCRIPTION_CANCELED
-Benachrichtigung gesendet, gefolgt von einer
SUBSCRIPTION_EXPIRED
am Ende des Zusicherungszeitraums.
Die Aboressource für den Kauf eines Abos mit Ratenzahlung, das „Ausstehende Stornierung“ sieht in etwa so aus:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_plan01",
"expiryTime": expiration_time,
"autoRenewingPlan": {
"autoRenewEnabled": true,
"recurringPrice": {
"currencyCode": "USD",
"units": "1",
"nanos": 990000000
},
"installmentDetails": {
"initialCommittedPaymentsCount": 6,
"remainingCommittedPaymentsCount": 5,
"pendingCancellation": {}
...
}
}
}
],
}
Im Feld canceledStateContext
in der Aboressource finden Sie
herausfinden, warum das Abo gekündigt wurde (z. B., ob das Abo
vom Nutzer, vom System oder von Ihnen storniert wurde. Bisheriges Abo
vom Nutzer storniert wurde, können Sie im Feld userInitiatedCancellation
nachsehen,
erfahren Sie, warum der Nutzer das Abo gekündigt hat. Dies kann bei der Kommunikation
zu entwickeln.
Wenn ein Abo gekündigt, aber noch nicht abgelaufen ist, gilt Folgendes:
immer noch von
queryPurchasesAsync()
Vielleicht möchten Sie in Ihrer App eine Nachricht mit dem Hinweis anzeigen,
Abo gekündigt wurde und das Ablaufdatum angegeben ist.
Widerrufe
Ein Abo kann aus verschiedenen Gründen widerrufen werden, z. B. aufgrund Ihres Backends
zum Widerrufen des Abos mithilfe von
purchases.subscriptionsv2.revoke
oder der Kauf wird zurückgebucht. Widerruft in diesem Fall das
Berechtigung sofort erhalten. Eine SubscriptionNotification
-Nachricht vom Typ
In diesem Fall wird SUBSCRIPTION_REVOKED
gesendet. Bei Erhalt dieser E-Mail
Das Abonnement
Infomaterial
die von der Google Play Developer API zurückgegeben wird, enthält das Feld subscriptionState
.
auf SUBSCRIPTION_STATE_EXPIRED
festgelegt.
Die Aboressource für einen widerrufenen Kauf sieht in etwa so aus: Beispiel:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_EXPIRED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time,
...
}
]
}
Aufgeschobene Abos
Es gibt eine Vielzahl von Gründen, warum Sie die
Berechtigung. Vielleicht möchten Sie Nutzern kostenlosen Zugang als spezielle
wenn Sie beispielsweise einen Film eine Woche lang kostenlos anbieten oder
Zugang zu Kundschaft als Zeichen des Wohlwollens zu nutzen. Sie können die
purchases.subscriptions.defer
aus der Play Developer API aus, um die nächste Rechnungsstellung für eine
sich automatisch verlängern. In diesem Fall wird ein SubscriptionNotification
Nachricht vom Typ SUBSCRIPTION_DEFERRED
gesendet. Während des Aufschubzeitraums
Der Nutzer hat Ihre Inhalte mit vollem Zugriff abonniert, es fallen jedoch keine Kosten an. Die
Das Verlängerungsdatum des Abos wird entsprechend aktualisiert.
Bei Prepaid-Tarifen können Sie die Defer Billing API verwenden, um den Ablauf zu verschieben .
Die Aboressource für ein verzögertes Abo sieht ähnlich aus wie die folgendes Beispiel:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_future,
...
}
],
}
Pausierte Abos
Du kannst die absichtliche Abwanderung verringern, indem du Nutzern ermöglichst, ihr Abo zu pausieren. Wenn Sie die Funktion „Pausieren“ aktivieren, können Nutzer ihr Abo pausieren für einen Zeitraum zwischen einer Woche und drei Monaten, je nachdem, wiederkehrender Zeitraum.
Wiederholung von Abos | Wöchentlich | Monatlich | Drei Monate | Sechs Monate | Jährlich |
---|---|---|---|---|---|
Verfügbare Pausenlängen* | 1 Woche 2 Wochen 3 Wochen 4 Wochen |
1 Monat 2 Monate 3 Monate |
1 Monat 2 Monate 3 Monate |
1 Monat 2 Monate 3 Monate |
– |
Eine Abo-Pause wird erst nach Ablauf des aktuellen Abrechnungszeitraums wirksam. Solange das Abo pausiert ist, hat der Nutzer keinen Zugriff auf das und zahlen nicht den Preis für die Verlängerung. Am Ende der Pause wird das Abo fortgesetzt und Google versucht, es zu verlängern. Ist die Fortsetzung erfolgreich, wird das Abo wieder aktiviert. Wenn die Fortsetzen aufgrund eines Zahlungsproblems fehlschlägt, wechselt der Nutzer in den Status der Kontosperre wie in den Abbildungen 5 und 6 dargestellt:
<ph type="x-smartling-placeholder">![](https://developer.android.com/static/images/google/play/billing/lifecycle/pause-1.png?authuser=6&hl=de)
![](https://developer.android.com/static/images/google/play/billing/lifecycle/pause-2.png?authuser=6&hl=de)
Nutzer können das Abo auch jederzeit während der Laufzeit manuell fortsetzen. wie in Abbildung 6 dargestellt. Wenn ein Nutzer den Vorgang manuell fortsetzt, wird in das Datum für die manuelle Fortsetzung geändert.
Wenn das Abo eines Nutzers pausiert wird, wird die Play Billing Library nicht wieder angezeigt
über das
queryPurchasesAsync()
. Wird das Abo fortgesetzt, wird die Methode queryPurchasesAsync()
und gibt es erneut zurück.
Achte auf RTDNs, um zu erkennen, wenn ein Nutzer sein Abo pausiert. Diese können Sie die Nutzer in Ihrer App darüber informieren, hat sein Abo pausiert und hat keinen Zugriff mehr darauf. Sie sollten auch eine Nutzer können ihr Abo jederzeit manuell fortsetzen, indem sie eine Deeplink zu Google Play.
Eine SubscriptionNotification
-Nachricht
mit dem Typ SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED
wird gesendet, wenn Ihr Nutzer
sein Abo pausiert. Derzeit sollte der Nutzer weiterhin Zugriff auf
ihr Abo bis zum nächsten Verlängerungsdatum zu verlängern und das Abonnement
Infomaterial
enthält autoRenewEnabled = true
. Wert des Felds subscriptionState
ist an diesem Punkt SUBSCRIPTION_STATE_ACTIVE
.
Eine SubscriptionNotification
-Nachricht vom Typ SUBSCRIPTION_PAUSED
wird gesendet, wenn die
die Pause in Kraft tritt. In diesem Fall sollte der Nutzer keinen Zugriff mehr auf seine
Abo und die Aboressource enthält autoRenewEnabled = true
,
und das Feld subscriptionState
auf SUBSCRIPTION_STATE_PAUSED
gesetzt ist. Sie können
um zu sehen, wann das Abo voraussichtlich wieder verlängert wird, indem Sie das
PausedStateContext
-Objekt enthält.
Eine SubscriptionNotification
-Nachricht vom Typ SUBSCRIPTION_RENEWED
wird gesendet, wenn
Das Abo wird entweder automatisch am Ende der Pausierung fortgesetzt
oder wenn der Nutzer das Abo manuell fortsetzen möchte. Diese sollten
wie unter Verlängerungen beschrieben.
Eine SubscriptionNotification
-Nachricht vom Typ SUBSCRIPTION_ON_HOLD
wird gesendet, wenn
Beim Versuch, das Abo nach der Pausierung fortzusetzen, ist ein Zahlungsfehler aufgetreten.
Dies sollte wie unter Kontosperre beschrieben behandelt werden.
Erneut abonnieren
Für Basis-Abos mit automatischer Verlängerung wird im Google Play Store möglicherweise ein Schaltfläche Wieder abonnieren. Über diese Schaltfläche können Nutzer wieder Zugriff erhalten zu einem Abo. Sie kann aus verschiedenen Gründen nicht angezeigt werden, z. B. wenn ein Abo vor langer Zeit abgelaufen ist.
<ph type="x-smartling-placeholder">![](https://developer.android.com/static/images/google/play/billing/lifecycle/restoration.png?authuser=6&hl=de)
Obwohl die Schaltfläche immer mit Wieder abonnieren beschriftet ist, hängt ihre Funktionalität davon ab. vom Abostatus abhängig.
Wenn ein Abo gekündigt, aber noch nicht abgelaufen ist, ist der Nutzer immer noch und von Abovorteilen profitieren können. Wenn der Nutzer auf „Wieder abonnieren“ tippt, wird die Kündigung rückgängig gemacht und das Abo wird weiterhin verlängert. In der Google Play-Entwicklerdokumentation und in den APIs wird diese Aktion als Wiederherstellen bezeichnet.
Nachdem ein Abo mit automatischer Verlängerung abgelaufen ist, können Sie Nutzern den Kauf ermöglichen demselben Basis-Abo zu erhalten. Diese Aktion wird als Wieder abonnieren bezeichnet in Dokumentation und APIs für Google Play-Entwickler Sie können diese Option konfigurieren für jedes Basis-Abo in der Play Console oder die API verwenden.
Vor Ablauf wiederherstellen
Wenn Ihre App ausschließlich auf dem
queryPurchasesAsync()
um zu ermitteln, ob ein Nutzer Anspruch auf ein Abo hat,
Wiederherstellungen automatisch verarbeiten, da die queryPurchasesAsync()
werden stornierte Käufe weiterhin vor ihrem Ablaufdatum zurückgegeben. A
das wiederhergestellte Abo so verlängert wird, als wäre es nicht gekündigt worden.
Wenn Ihre App den Abostatus mit einem Backend synchronisiert, sollten Sie beobachten,
für SubscriptionNotification
vom Typ SUBSCRIPTION_RESTARTED
. Nachdem du diese RTDN erhalten hast,
deine App auf die Benachrichtigung reagieren kann, aufzeichnen, dass das Abo jetzt abgeschlossen ist
erneuert und es werden keine Wiederherstellungsmitteilungen mehr in Ihrer App angezeigt. Die
Aboressource sieht in etwa so aus:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date
...
}
],
}
Nach Ablauf des Abos wieder abonnieren
Wenn ein Basis-Abo mit automatischer Verlängerung über die Google Play Console oder die API konfiguriert wurde Damit Nutzer die Funktion „Wieder abonnieren“ nutzen können, können sie ein abgelaufenes Abo im Google Play Store
Das sind neue Käufe. Google Play gibt ein neues Kauftoken aus und
das Backend eine RTDN vom Typ SUBSCRIPTION_PURCHASED
empfängt. Kaufstatus
enthält für diese Art von Out-of-App-Kauf keine linkedPurchaseToken
die mit dem ursprünglichen Kauf verknüpft sind,
ist vollständig abgelaufen. Dies sind neue Käufe, die von deinem Backend verwaltet werden müssen
und bestätigen Sie wie jeden anderen Kauf.
Upgrades, Downgrades und ein neues Abo
Wenn ein Nutzer ein Upgrade oder Downgrade durchführt oder sich registriert, nachdem vor Ablauf des Abonnements kündigen, gilt die alte Das Abo wird ungültig und ein neues Abo wird erstellt mit um ein neues Kauftoken zu erhalten.
Darüber hinaus enthält das Abonnement
Infomaterial
von der Google Play Developer API zurückgegebene linkedPurchaseToken
enthält
das den alten Kauf angibt,
über den der Nutzer ein Upgrade oder Downgrade durchgeführt hat
oder ihr Abo neu abonnieren. Sie können das Kauftoken in diesem Feld verwenden, um das alte
Abo abschließen und das bestehende Nutzerkonto identifizieren, damit Sie
mit demselben Konto verknüpft sind.
Bevor Sie einem Nutzer in Ihrer App Upgrades, Downgrades oder erneute Abos anbieten, müssen Sie das bestehende Abo bestätigen. Beliebige Tarifänderung oder erneutes Abo wird blockiert, wenn die Bestätigung des vorhandenen Abos noch aussteht.
Wenn der Nutzer das Upgrade, Downgrade oder ein neues Abo erwirbt, Dies ist ein neuer Kauf, den Sie bestätigen müssen. Die empfohlene Methode Verwenden Sie dazu die Google Play Developer API. Die Aboressource sieht in etwa so aus:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"linkedPurchaseToken": old_purchase_token,
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
Preisänderungen
Weitere Informationen finden Sie im Best Practices-Leitfaden für Preisänderungen. . wenn es angebracht ist.
Wenn für bestehende Abonnenten Preisänderungen zustimmen werden, gilt Folgendes: eine RTDN erhalten hat, wenn der Nutzer den neuen Preis bestätigt oder ablehnt.
Nutzerbestätigung einer Opt-in-Preisänderung verarbeiten
Wenn ein Nutzer die Preiserhöhung für dein Abo akzeptiert, erhältst du eine
SubscriptionNotification
Nachricht
vom Typ SUBSCRIPTION_PRICE_CHANGED_CONFIRMED
. Mit einem Opt-out-Preis
oder wenn die Preiserhöhung für das Abo verlängert wird, erhalten Sie eine
SubscriptionNotification
-Nachricht vom Typ SUBSCRIPTION_RENEWED
. Das sollten Sie behandeln
wie bei jeder anderen Verlängerung.
Umgang mit Fällen, in denen eine Opt-in-Preiserhöhung nicht akzeptiert wird
Wenn ein Nutzer Ihre Opt-in-Preiserhöhung nicht akzeptiert hat, bevor er verlängert werden muss
zum höheren Preis abonniert, werden sie automatisch beendet und Sie erhalten eine
SubscriptionNotification
Nachricht
vom Typ SUBSCRIPTION_CANCELED
. Verarbeiten Sie dieses Ereignis wie in
Kündigungen:
Nutzer können ihre Abos auch kündigen, um eine Opt-out-Preiserhöhung zu erhalten. mit demselben Mechanismus.
Lebenszyklus von Prepaid-Tarifen verwalten
Wie bei Abos mit automatischer Verlängerung müssen Sie Prepaid-Tarife bestätigen, bei jedem neuen Kauf. Bei Prepaid-Tarifen müssen Sie sowohl den Erstkauf als auch etwaige Aufladungen abzuwickeln, da die Nutzenden gesamten Kaufvorgang durchlaufen.
Aufgrund der kurzen Laufzeit von Prepaid-Tarifen ist es wichtig, den Kauf so schnell wie möglich bestätigen. Prepaid-Tarife mit einer Laufzeit von eine Woche oder länger müssen innerhalb von 3 Tagen bestätigt werden. Prepaid-Tarife mit einem Dauer von weniger als einer Woche muss innerhalb der Hälfte des Plans anerkannt werden Dauer Beispielsweise haben Entwickler 1,5 Tage Zeit, um den Kauf eines 3-Tage-Prepaid-Tarif.
<ph type="x-smartling-placeholder">Eine SubscriptionNotification
-Nachricht
mit dem Typ SUBSCRIPTION_PURCHASED
an deinen RTDN-Client gesendet,
Es wird ein Prepaid-Tarif abgeschlossen – inklusive jeder Aufladung. Rufen Sie die Methode
purchases.subscriptionsv2.get
Methode, um den aktuellen Status des Prepaid-Tarifs zu prüfen.
Für Aufladekäufe wird ein neues Kauftoken ausgegeben und Sie erhalten das
vorherigen Kauftoken im Feld linkedPurchaseToken
als Teil des neuen
Status des Abokaufs Das Kauftoken ist für das Abo gültig
sich bis 60 Tage nach Ablauf des Abonnements anzumelden. Nach diesem Datum wird das Kauftoken
nicht mehr zum Aufrufen der Google Play Developer API gültig.
Die Aboressource für den Kauf eines Prepaid-Tarifs sieht in etwa so aus: folgendes Beispiel:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED",
"lineItems": [
{
"productId": "prepaid_plan01",
"expiryTime": expiry_date,
"prepaidPlan": {
"allowExtendAfterTime": timestamp_after_which_topups_are_allowed
}
}
]
}
Im Feld expiryTime
sehen Sie, wann die Berechtigung endet. Aufladen
Käufe verlängern die Berechtigungszeit, indem sie sich ansammeln. Wenn also
Der Nutzer zahlt auf, bevor seine ursprüngliche Berechtigung abgelaufen ist, wird die neue Zeit hinzugefügt.
und zwar zusätzlich zum vorherigen Ablaufdatum.
Vielleicht möchten Sie in Ihrer App eine Nachricht mit dem Hinweis anzeigen,
Prepaid-Abonnements können durch eine Aufladung verlängert werden. Um zu wissen, wann Nutzende
Informationen zum Aufladen erhalten Sie im Feld allowExtendAfterTime
im Abo
.
Prepaid-Tarife werden nicht automatisch verlängert und können daher nicht gekündigt werden. Wenn Nutzende Kündigen eines Prepaid-Tarifs, können Sie warten, bis das Ablaufdatum erreicht ist.