In diesem Thema wird beschrieben, wie mit Lebenszyklusereignissen von Abos umgegangen wird, darunter: deren Verlängerungen und Gültigkeit abgelaufen sind. Außerdem werden zusätzliche Abofunktionen beschrieben. z. B. Werbeaktionen anbieten und Nutzern die Möglichkeit geben, Abos.
Wenn du für deine App noch keine Aboprodukte konfiguriert hast, gehe zu Produkte erstellen und konfigurieren
Aboübersicht
Ein Abo steht für eine Reihe von Vorteilen, die Nutzer in einer für einen bestimmten Zeitraum. Beispielsweise kann ein Abo einem Nutzer um auf einen Musik-Streamingdienst zuzugreifen.
Du kannst mehrere Abos in derselben App haben, verschiedene Vorteile oder verschiedene Stufen einer eine Reihe von Vorteilen (z. B. die Stufen „Silber“ und „Gold“).
Mit Basis-Abos und Angeboten können Sie mehrere Konfigurationen erstellen für dasselbe Aboprodukt. Sie können beispielsweise einen Einführungsangebot für Nutzer, die deine App noch nie abonniert haben. In ähnlicher Weise können Sie ein Upgrade-Angebot für Nutzer erstellen, die bereits ein Abo haben.
Wenn Sie eine detaillierte Übersicht über Aboprodukte, Basis-Abos und Angebote erhalten möchten, finden Sie in der Dokumentation Play Console-Hilfe
Integration von Prepaid-Tarifen
Prepaid-Tarife werden bei Ablauf nicht automatisch verlängert. Um ihre Aboberechtigung unterbrechungsfrei nutzen zu können, muss der Nutzer einen Prepaid-Tarif für dasselbe Abo.
Starten Sie zum Aufladen den Abrechnungsablauf wie für das ursprüngliche kaufen. Sie müssen nicht angeben, dass es sich bei einem Kauf um eine Aufladung handelt.
Für das Aufladen von Prepaid-Tarifen wird immer die CHARGE_FULL_PRICE
verwendet
Ersatzmodus und Sie müssen diesen Modus nicht explizit festlegen.
Dem Nutzer wird sofort der gesamte Abrechnungszeitraum in Rechnung gestellt,
und ihre Berechtigung wird um die bei der Aufladung angegebene Dauer verlängert.
Nach einer Aufladung werden die folgenden Felder in der
Purchase
Ergebnisobjekt werden aktualisiert, um den letzten Aufladekauf widerzuspiegeln:
- Auftrags-ID
- Kaufzeitpunkt
- Unterschrift
- Kauftoken
- Bestätigt
Die folgenden Purchase
-Felder enthalten immer die gleichen Daten wie in
dem ursprünglichen Kauf:
- Paketname
- Kaufstatus
- Produkte
- Automatische Verlängerung
Bestätigung für Prepaid-Kauf
Ähnlich wie bei Abos mit automatischer Verlängerung müssen Sie Prepaid-Tarife bestätigen. nach dem Kauf. Sowohl der Erstkauf als auch alle Aufladungen müssen bestätigt. Weitere Informationen finden Sie unter Käufe verarbeiten:
Aufgrund der kurzen Laufzeit von Prepaid-Tarifen ist es wichtig, den Kauf so schnell wie möglich bestätigen.
Prepaid-Tarife mit einer Dauer von mindestens einer Woche müssen bestätigt werden innerhalb von drei Tagen.
Prepaid-Tarife mit einer Laufzeit von weniger als einer Woche müssen bestätigt werden innerhalb der Hälfte der Plandauer. Entwickler haben beispielsweise 1,5 Tage Zeit, einen 3-Tage-Prepaid-Tarif bestätigen.
Integration von Ratenabos
Ein Ratenabo ist eine Art von Abo, bei dem Nutzer für den in mehreren Raten über einen bestimmten Zeitraum abonnieren, die gesamte Abogebühr im Voraus zu bezahlen.
Weitere Hinweise für Ratenabos:
- Verfügbarkeit nach Ländern: Die Funktion für Ratenabos ist nur verfügbar. in Brasilien, Frankreich, Italien und Spanien (in der Konsole verfügbar).
- Preis festlegen: Sie legen den Preis für ein Abo mit Ratenzahlung fest. in der Konsole steht der Preis für den monatlichen Zahlungsbetrag. Dies, ergibt in Kombination mit dem festgelegten Zusicherungszeitraum den Gesamtbetrag für das Abo auf dem Kaufbildschirm aus.
- Mindestlaufzeit: Die Gesamtdauer des ersten Abos , in dem monatliche Zahlungen fällig werden. Wenn zum Beispiel ein Basis-Abo hat eine Mindestlaufzeit von 15 Monaten, der Nutzer erhält 15 Monate Zahlungen in diesem Zeitraum.
- Verlängerungen: „Verlängerung“ im Zusammenhang mit Ratenabos. steht für zum Abschluss einer Mindestlaufzeit, entweder die anfängliche Mindestlaufzeit Mindestlaufzeit. Nach der ersten Registrierung wird erfolgt nach Ablauf des gesamten anfänglichen Zusicherungszeitraums. Im Anschluss Verlängerungen erfolgen nach Ablauf jedes nachfolgenden Zusicherungszeitraums. Die Verlängerungstypen für Ratenabonnements können „automatisch monatlich verlängert“ sein oder „wird automatisch für dieselbe Dauer verlängert“. Für die Option „Automatisch monatlich verlängert“ gibt es keine und der Tarif verhält sich wie ein Monatsabo, stellt jede monatliche Abogebühr eine Verlängerung dar.
- Abrechnungszeitraum: Im Zusammenhang mit Ratenzahlungen ist dies der Fall. auf das wiederkehrende Intervall, in dem einzelne Zahlungen vorgenommen werden, wie angegeben im Basis-Abo.
- Plan- und Preisänderungsverhalten im Vergleich: Für Preisänderungen und Kündigungen, ist die Zusicherung fest. Das bedeutet, wenn Nutzende kündigen oder ein Entwickler den Preis ändern möchte, tritt die Änderung am einer Mindestlaufzeit aus. Bei Tarifänderungen ist die Zusicherung nicht fest. Das bedeutet, dass die Tarifänderung nicht bis zum Ende eines Verpflichtungsperiode, sie tritt entweder sofort oder bei der nächsten Zahlung in Kraft Datum basierend auf dem festgelegten Ersetzungsmodus.
- Änderung des gleichen Abos: Änderung des Tarifs durch ein Basis-Abo mit Ratenzahlung eines Basis-Abos ohne Ratenzahlung desselben Aboprodukts, Zulässig sind.
Entwicklerbenachrichtigungen in Echtzeit:
SUBSCRIPTION_CANCELLATION_SCHEDULED
RTDN wird sofort gesendet, nachdem vom Nutzer veranlasste Kündigung, wenn während des Mindestzeitraums Zahlungen ausstehen Die Kündigung steht noch aus und wird erst am Ende des Mindestlaufzeit. Wenn er sie nicht wiederhergestellt hat,SUBSCRIPTION_CANCELED
undSUBSCRIPTION_EXPIRED
RTDNs werden am Ende des Zusicherungszeitraums gesendet.Auszahlungen / Umsatzrealisierung: Auszahlungen an Entwickler erfolgen, wenn Nutzer zu deren monatlichen Zahlungen zu den gleichen Bedingungen wie für alle anderen Abos abgerechnet. Entwickler werden nicht im Voraus bezahlt, wenn sich der Nutzer für die Rate registriert Abo.
Verpasste Einziehungen: wenn ein Nutzer keine Raten leistet werden weder Google noch der Entwickler versuchen, versäumte oder ausstehende Zahlungen des Nutzers erhalten, mit Ausnahme des Falles, während des Kulanzzeitraums die Zahlung regelmäßig wiederholen oder Die Kontosperre entspricht den üblichen Verfahren für Zahlungswiederholungen. Google übernimmt dem Entwickler gegenüber keine Verantwortung für verbleibende ausstehende Beträge. Ratenzahlungen.
Verfügbarkeit der Play Billing Library: Das Feld
installmentDetails
ist nur verfügbar für PBL 7 oder höher. Für PBL 5 und höher Abo wird mitqueryProductDetails()
zurückgegeben, aber das Abo enthalten keine detaillierten Rateninformationen wie die Anzahl der zugesicherten Zahlungen des Plans.
Nutzer mithilfe von Deeplinks ein Abo verwalten
Ihre App sollte einen Link auf einem Einstellungsbildschirm enthalten, über den Sie damit Nutzer ihre Abos verwalten können. Diese können Sie dann in die natürliches Erscheinungsbild.
Du kannst einen Deeplink von deiner App zu den Google Play-Abos hinzufügen
für abgelaufene Abonnements. Diese können Sie mithilfe der
Feld subscriptionState
der Aboressource.
Es gibt mehrere Möglichkeiten, Deeplinks zu Google Play hinzuzufügen.
Store-Abocenter.
Link zum Abocenter
Leiten Sie Nutzer mithilfe der folgenden URL auf die Seite weiter, auf der alle ihre Abos, wie in den Abbildungen 1 und 2 gezeigt:
https://play.google.com/store/account/subscriptions
Mit diesem Deeplink kann ein Nutzer ein gekündigtes Abo wiederherstellen im Abocenter des Play Store.
Link zu einer bestimmten Seite für die Aboverwaltung (empfohlen)
Um einen direkten Link zur Verwaltungsseite für ein abgelaufenes Abo zu erstellen, geben Sie
Der Paketname und die productId
, die mit dem erworbenen Abo verknüpft sind. Bis
die productId
für ein vorhandenes Abo, eine Abfrage
Back-End Ihrer Anwendung oder rufen Sie BillingClient.queryPurchasesAsync()
auf, um eine Liste
Abos, die mit einem bestimmten Nutzer verknüpft sind. Jedes Abo enthält
das entsprechende productId
als Teil der Informationen zum Abostatus.
Jedes SubscriptionPurchaseLineItem
-Objekt, das mit einem
enthält den Wert productId
, der mit dem
Abo, das der Nutzer
in dieser Werbebuchung gekauft hat.
Über die folgende URL kannst du Nutzer zu einer bestimmten Aboverwaltung weiterleiten
Bildschirm und ersetzen Sie dabei „Ihre Unterprodukt-ID“. und „your-app-package“ mit dem
productId
bzw. Name des App-Pakets:
https://play.google.com/store/account/subscriptions?sku=your-sub-product-id&package=your-app-package
Der Nutzer kann dann seine Zahlungsmethoden verwalten und auf Funktionen zugreifen. einschließlich Kündigung, Verlängerung und Pausierung.
Nutzern erlauben, für ihr Abo ein Upgrade, Downgrade oder eine Änderung vorzunehmen
Du kannst bestehenden Abonnenten verschiedene Optionen anbieten, Abos, die besser auf ihre Bedürfnisse zugeschnitten sind:
- Wenn Sie mehrere Abostufen verkaufen, z. B. „Basic“ und „Premium“ können Sie Nutzern ermöglichen, die Stufe zu wechseln, das Basis-Abo oder Angebot des Abos.
- Sie können Nutzern erlauben, ihren aktuellen Abrechnungszeitraum zu ändern, z. B. zu einem anderen Konto. vom Monats- ins Jahresabo.
- Sie können Nutzern auch erlauben, zwischen einem Tarif mit automatischer Verlängerung und einem Prepaid-Tarif zu wechseln.
Sie können diese Änderungen fördern, indem Sie berechtigten Nutzern einen Rabatt gewähren. Sie können z. B. ein Angebot erstellen, mit einem Rabatt von 50% auf das erste Jahr bei einem Wechsel von einem monatlichen zu einem Jahrestarif und beschränken Sie dieses Angebot auf Nutzer mit einem monatlichen Abo. die dieses Angebot noch nicht erworben haben. Weitere Informationen zu den Voraussetzungen für das Angebot Kriterien finden Sie in der Hilfe
Abbildung 3 zeigt eine Beispielanwendung mit drei verschiedenen Plänen:
<ph type="x-smartling-placeholder">In Ihrer App könnte ein Bildschirm wie in Abbildung 3 angezeigt werden, auf dem Nutzer die Möglichkeit haben, sein Abo abzuschließen. In jedem Fall sollte für die Nutzer klar erkennbar sein, Abo ist und welche Möglichkeiten es gibt, es zu ändern.
Wenn Nutzer ein Upgrade, Downgrade oder eine Änderung ihres Abos ausführen, einen Ersatzmodus angeben, der bestimmt, wie der anteilige Wert des angewendet werden und wenn sich die Berechtigung ändert.
Ersatzmodi
In der folgenden Tabelle sind die verfügbaren Ersatzmodi und die Anwendungsbeispiele aufgeführt. und die Anzahl der Zahlungen, die als bezahlt gelten.
Ersetzungsmodus |
Beschreibung |
Verwendungsbeispiel |
Zugesicherte Zahlungen, die als bezahlt erfasst wurden (für den Austausch von Ratenzahlungen) |
|
Das Upgrade oder Downgrade des Abos wird sofort durchgeführt. Die verbleibende Zeit wird entsprechend der Preisdifferenz angepasst und dem neuen Abo gutgeschrieben, indem das nächste Abrechnungsdatum vorverlegt wird. Dies ist die Standardeinstellung. |
Führen Sie ein Upgrade auf eine teurere Stufe ohne sofortige Zusatzkosten durch. |
0 |
|
Das Abo wird sofort umgestellt und der Abrechnungszeitraum bleibt gleich. Die Preisdifferenz für den verbleibenden Zeitraum wird dem Nutzer in Rechnung gestellt. Hinweis:Diese Option ist nur für Abo-Upgrade, bei dem der Preis pro Zeiteinheit steigt. |
Auf eine teurere Stufe upgraden, ohne das Abrechnungsdatum zu ändern. |
1 |
|
Das Upgrade oder Downgrade für das Abo wird sofort durchgeführt und der Nutzer wird Ihnen sofort der volle Preis für die neue Berechtigung berechnet. Der verbleibende Wert aus dem vorherigen Abo entweder für dasselbe Abo Berechtigung oder auf einen anteiligen Zeitraum beim Wechsel zu einer anderen Berechtigung verrechnet werden. Hinweis:Wenn das neue Abo einen kostenlosen Testzeitraum oder einen Einführungsangebots wird dem Nutzer 0 € oder der Preis der Einführungsaktion je nachdem, was zutrifft. |
Wechseln Sie von einem kürzeren zu einem längeren Abrechnungszeitraum. |
1 (Hinweis: 0, wenn das neue Abo einen kostenlosen Testzeitraum umfasst.) |
|
Das Upgrade oder Downgrade des Abos erfolgt sofort. Der neue Preis wird bei Verlängerung des Abos in Rechnung gestellt. Der Abrechnungszeitraum bleibt gleich. |
Führen Sie ein Upgrade auf eine höhere Abo-Stufe durch und behalten Sie den verbleibenden kostenlosen Zeitraum bei. |
0 |
|
Das Upgrade oder Downgrade des Abos wird nur dann durchgeführt, wenn das Abo verlängert wird. Der neue Kauf wird jedoch sofort mit einem Startdatum für die neue Berechtigung ausgeführt, das in der Zukunft liegt. So kann der Entwickler Nutzern die Möglichkeit geben, bei Bedarf weitere Änderungen vorzunehmen. Er kann beispielsweise zum ursprünglichen Plan zurückkehren oder eine neue nachträgliche Änderung des Tarifs initiieren. Hinweis: Bei Ratenabos erfolgt die Tarifänderung zu Beginn des nächsten Zahlungsdatums. |
Führen Sie ein Downgrade auf eine kostengünstigere Stufe durch. |
1 |
Um mehr über die verschiedenen Upselling- und Rückgewinnungsanwendungen von finden Sie im Leitfaden zu Angeboten und Werbeaktionen.
Ersatzmodus für einen Kauf festlegen
Sie können verschiedene Ersatzmodi für verschiedene Abotypen verwenden basierend auf Ihren Präferenzen und der Geschäftslogik. In diesem Abschnitt wird erläutert, Wie ein Ersatzmodus für eine Änderung in einem Abo festgelegt wird und welche Einschränkungen gelten die zutreffen.
Innerhalb desselben Abos ein neues Abo abschließen oder zu einem anderen Abo wechseln
Sie können in der Google Play Console einen Standardersetzungsmodus festlegen. Dieses
können Sie festlegen, wann Sie Ihren aktuellen Abonnenten bei einem Kauf in Rechnung stellen.
ein anderes Basis-Abo oder Angebot für dasselbe Abo oder
Kündigung. Die verfügbaren Optionen sind Sofort bezahlen, was der
CHARGE_FULL_PRICE
und Zum nächsten Abrechnungsdatum abrechnen, entsprechend
WITHOUT_PRORATION
. Dies sind die einzigen relevanten Ersatzmodi, wenn
die Basis-Abos innerhalb desselben Abos wechseln.
Wenn Sie z. B. ein Rückgewinnungsangebot für denselben Plan nach dem Ende des
Kündigt der Nutzer, aber vor Ablauf des Abos können Sie den neuen Kauf
als regulärer Kauf ohne Angabe von Werten in
SubscriptionUpdateParams
Das System verwendet den standardmäßigen Ersetzungsmodus,
im Abo konfiguriert ist und die Tarifumstellung automatisch übernimmt
vom alten Kauf bis zum neuen Kauf.
Du kannst zwischen Abos wechseln oder den Standardersetzungsmodus überschreiben
Wenn der Nutzer ein anderes Aboprodukt oder ein anderes Abo kauft oder wenn Sie den standardmäßigen Ersetzungsmodus Grund angeben, geben Sie den Zuteilungspreis zur Laufzeit im Rahmen des Kaufvorgangs an. Parameter.
Angabe von SubscriptionUpdateParams
im Rahmen des Laufzeitkaufs korrekt
beachten Sie die folgenden Einschränkungen:
- Wenn Sie ein Upgrade, Downgrade oder den Wechsel zu einem Abo zu einem Abo ausführen,
Prepaid-Tarif über einen Prepaid-Tarif,
Der zulässige Ersetzungsmodus ist
CHARGE_FULL_PRICE
. Wenn Sie andere Ersatzmodus verwendet wird, schlägt der Kauf fehl und der Nutzer sieht eine Fehlermeldung. - Beim Wechsel des Abos innerhalb desselben Abos zu einem sich automatisch verlängernden Tarif
aus einem Prepaid-Tarif oder einem Tarif mit automatischer Verlängerung, gültige Zuteilungsmodi
sind
CHARGE_FULL_PRICE
undWITHOUT_PRORATION
. Wenn Sie andere Zuteilungsmodus schlägt der Kauf fehl und dem Nutzer wird ein Fehler angezeigt. - Tarife innerhalb desselben Aboprodukts über eine Ratenbasis wechseln in ein Basis-Abo ohne Ratenzahlung ist nicht zulässig.
Ersetzungsbeispiele und -verhalten
Betrachten Sie das folgende Szenario, um die Funktionsweise der einzelnen Zuteilungsmodus zu verstehen:
Samwise hat ein Abo für Online-Inhalte der Country Gardener-App. Er hat ein Monatsabo der Version der Inhalte von Tier 1, die nur Text enthält. Das Abo kostet ihn 2$pro Monat und es wird verlängert am Ersten des Monats.
Am 15. April entschied sich Samwise für ein Upgrade auf die Jahresversion von Tier 2. mit Videoupdates und kostet 36$pro Jahr.
Beim Upgrade des Abos wählt der Entwickler einen Zuteilungsmodus aus. Die In der folgenden Liste wird beschrieben, wie sich die einzelnen Zuteilungsmodus auf Samwises Abo auswirken:
WITH_TIME_PRORATION
Samwises Tier 1-Abo endet sofort. Er hat für einen ganzen Tag (1. bis 30. April), aber nach der Hälfte der Abolaufzeit aktualisiert, die Hälfte ein Monatsabo (1 €) auf das neue Abo angewendet wird. Das liegt jedoch nicht daran, dieses neue Abonnement 36 $pro Jahr kostet, werden mit dem Guthaben von 1 $nur zehn Tage (16.–25. April); Am 26. April werden ihm 36 € für ein neues Abo in Rechnung gestellt weitere 36 US-Dollar am 26. April des Folgejahres ein.
Sie sollten die PurchasesUpdatedListener
Ihrer App in dem Moment aufrufen, in dem
Kauf abgeschlossen ist und Sie den neuen Kauf im Rahmen eines
queryPurchasesAsync()
Anruf. Ihr Backend erhält sofort
SUBSCRIPTION_PURCHASED
Entwicklerbenachrichtigung in Echtzeit.
CHARGE_PRORATED_PRICE
Dieser Modus kann verwendet werden, weil der Abopreis von Tier 2 pro Zeiteinheit (36 $/Jahr = 3 $/Monat) ist höher als der Abopreis von Stufe 1 pro Zeit. Einheit (2 $/Monat). Samwises Tier 1-Abo endet sofort. Weil er bezahlt, aber nur die Hälfte des Monats, (1 €) wird auf sein neues Abo angewendet. Da das neue Abo jedoch kostet 36 US-Dollar/Jahr, die verbleibenden 15 Tage kosten 1,50 US-Dollar; sodass ihm die Kosten 0,50 € Rabatt auf sein neues Abo. Am 1. Mai zahlt Samwise 36 $. für seine neue Abostufe und weitere 36 $am 1. Mai des Folgejahres.
Sie sollten die PurchasesUpdatedListener
Ihrer App in dem Moment aufrufen, in dem
Kauf abgeschlossen ist und Sie den neuen Kauf im Rahmen
einen queryPurchasesAsync()
-Anruf. Ihr Backend erhält sofort
SUBSCRIPTION_PURCHASED
Entwicklerbenachrichtigung in Echtzeit.
WITHOUT_PRORATION
Samwises Tier 1-Abo wird sofort auf Tier 2 hochgestuft, ohne dass und am 1. Mai 36 € für die neue Abostufe weitere 36 US-Dollar am 1. Mai des Folgejahres.
Sie sollten die PurchasesUpdatedListener
Ihrer App in dem Moment aufrufen, in dem
Kauf abgeschlossen ist und Sie den neuen Kauf im Rahmen
einen queryPurchasesAsync()
-Anruf. Ihr Backend erhält sofort
SUBSCRIPTION_PURCHASED
Entwicklerbenachrichtigung in Echtzeit.
DEFERRED
Samwises Tier 1-Abo läuft bis zum 30. April ab. Im Mai Erstens tritt das Abo von Tier 2 in Kraft und Samwise wird mit 36 $für seine neue Abo-Stufe.
Sie sollten die PurchasesUpdatedListener
Ihrer App in dem Moment aufrufen, in dem
Kauf abgeschlossen ist und Sie den neuen Kauf im Rahmen
einen queryPurchasesAsync()
-Anruf. Ihr Backend erhält sofort
SUBSCRIPTION_PURCHASED
Entwicklerbenachrichtigung in Echtzeit. Sie sollten
verarbeiten Sie den Kauf genauso wie andere Neukäufe.
an diesem Punkt. Achten Sie insbesondere darauf, dass Sie den neuen Kauf bestätigen. Hinweis
dass die startTime
des neuen Abos bei
sobald der Austausch wirksam ist, was passiert, wenn die alte
Abo abläuft. Sie erhalten dann eine SUBSCRIPTION_RENEWED
RTDN für das neue Abo. Weitere Informationen zum
ReplacementMode.DEFERRED
-Verhalten in
Verzögertes Ersetzen.
CHARGE_FULL_PRICE
Samwises Tier 1-Abo endet sofort. Sein Tier 2-Abo beginnt heute und ihm werden 36 € in Rechnung gestellt. Er hat für einen ganzen Monat bezahlt, nur die Hälfte, ein halbes Monatsabo (1 $) wird auf sein neues Abo. Da das neue Abo 36 $pro Jahr kostet, erhält er 1/36. um ein Jahr zu seiner Abolaufzeit (ca. 10 Tage) hinzu. Dementsprechend ist Samwises die nächste Abbuchung für 1 Jahr und 10 Tage ab heute für 36 € anfällt. Danach ist er wurde für jedes darauffolgende Jahr 36 US-Dollar berechnet.
Beachten Sie bei der Auswahl eines Zuteilungsmodus unsere Empfehlungen für den Umtausch.
Aboänderungen in der App auslösen
Sie können Nutzern in Ihrer App ein Upgrade oder Downgrade anbieten, indem Sie dieselben Schritte ausführen wie Starten eines Kaufvorgangs. Bei einem Upgrade oder Downgrade Sie müssen Angaben zum aktuellen Abo, zu einem zukünftigen (aktualisierten oder und den Ersatzmodus, wie in den folgendes Beispiel:
Kotlin
val offerToken = productDetails .getSubscriptionOfferDetails(selectedOfferIndex) .getOfferToken() val billingParams = BillingFlowParams.newBuilder().setProductDetailsParamsList( listOf( BillingFlowParams.ProductDetailsParams.newBuilder() .setProductDetails(productDetails) .setOfferToken(offerToken) .build() ) ).setSubscriptionUpdateParams( BillingFlowParams.SubscriptionUpdateParams.newBuilder() .setOldPurchaseToken("old_purchase_token") .setSubscriptionReplacementMode( BillingFlowParams.ReplacementMode.CHARGE_FULL_PRICE ) .build() ).build() billingClient.launchBillingFlow( activity, billingParams ) // ...
Java
String offerToken = productDetails .getSubscriptionOfferDetails(selectedOfferIndex) .getOfferToken(); BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setProductDetailsParamsList( ImmuableList.of( ProductDetailsParams.newBuilder() // fetched via queryProductDetailsAsync .setProductDetails(productDetails) // offerToken can be found in // ProductDetails=>SubscriptionOfferDetails .setOfferToken(offerToken) .build())) .setSubscriptionUpdateParams( SubscriptionUpdateParams.newBuilder() // purchaseToken can be found in Purchase#getPurchaseToken .setOldPurchaseToken("old_purchase_token") .setSubscriptionReplacementMode(ReplacementMode.CHARGE_FULL_PRICE) .build()) .build(); BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams); // ...
Empfehlungen für den Austausch
Die folgende Tabelle zeigt verschiedene Szenarien der anteiligen Anteile und Empfehlungen für jedes Szenario:
Szenario | Empfohlener Ersatzmodus | Ergebnis |
---|---|---|
Upgrade auf eine teurere Stufe durchführen | CHARGE_PRORATED_PRICE |
Der Nutzer erhält sofort Zugriff unter Beibehaltung der Abrechnung. Punkt. |
Downgrade auf eine kostengünstigere Stufe | DEFERRED |
Der Nutzer hat bereits für die teurere Stufe bezahlt, also behält er Zugriff bis zum nächsten Abrechnungsdatum. |
Upgrade während eines kostenlosen Testzeitraums durchführen, während der Test läuft | WITHOUT_PRORATION |
Der Nutzer hat weiterhin Zugriff auf die kostenlose Testversion, führt jedoch ein Upgrade auf eine höhere Stufe für bis zum Ende des Tests. |
Upgrade während eines kostenlosen Testzeitraums – Zugang zum kostenlosen Testzeitraum beenden | CHARGE_PRORATED_PRICE |
Der Nutzer erhält sofort Zugriff auf die neue Stufe, jedoch nicht mehr. hat eine kostenlose Testversion. |
Käufe von Aboänderungen verarbeiten
Änderungen des Tarifs gelten für neue Käufe unter Berücksichtigung aller Bedingungen und Zwecke und sollten verarbeitet und nach Abschluss des Abrechnungsvorgangs entsprechend bestätigt. erfolgreich war. Neben der ordnungsgemäßen Bearbeitung des neuen Kaufs den gekauften Artikel, der ersetzt wird, zurückziehen müssen.
Das In-App-Verhalten entspricht dem für jeden neuen Kauf. Deine App erhält die
Ergebnis des neuen Kaufs in PurchasesUpdatedListener
und die
neuer Kauf ist in queryPurchasesAsync
verfügbar.
Die Google Play Developer API gibt linkedPurchaseToken
im
Aboressource, wenn ein Kauf eine vorhandene ersetzt
eins. Achten Sie darauf, das in der linkedPurchaseToken
angegebene Token zu entwerten, um
Stellen Sie sicher, dass das alte Token nicht für den Zugriff auf Ihre Dienste verwendet wird. Weitere Informationen finden Sie unter
Upgrades, Downgrades und Neuregistrierungen
und Downgrades für Käufe durchführen.
Wenn du das neue Kauftoken erhältst, folge demselben Bestätigungsprozess wie
mit der Bestätigung eines neuen Kauftokens. Achten Sie darauf, diese
Käufe bei Google Play mit BillingClient.acknowledgePurchase()
Billing Library oder Purchases.subscriptions:acknowledge
von
die Google Play Developer API.
Verzögerter Austausch handhaben
Mit dem verzögerten Ersetzungsmodus können Nutzer die verbleibenden Berechtigung in ihrem alten Abo gewährt, bevor mit dem neuen Abo begonnen wird.
Wenn Sie ReplacementMode.DEFERRED für einen neuen Kauf verwenden,
queryPurchasesAsync()
gibt nach dem Kauf ein neues Kauftoken zurück
der mit dem alten Produkt verknüpft bleibt, bis der verzögerte Ersatz
erfolgt am nächsten Verlängerungsdatum, nach dem das neue Produkt
zurückgegeben.
In der Vergangenheit konnten Sie diese Nutzererfahrung mit der veralteten
ProrationMode.DEFERRED
, aber ProrationMode.DEFERRED
wird bei Google Play eingestellt
Billing Library 6. In der folgenden Tabelle sehen Sie, wo das Verhalten
unterscheidet:
Uhrzeit |
ProrationMode.DEFERRED (eingestellt) |
Ersatzmodus.DEFERRED |
Direkt nach dem erfolgreichen Kaufvorgang (App) |
Der Anspruch auf das alte Abo bleibt bis zum nächsten Verlängerungsdatum bestehen. Damit die App die richtige Berechtigung gewährt, gibt Das neue Kauftoken wird nicht angezeigt und kann daher an diesem Punkt nicht verarbeitet werden. |
Das neue Kauftoken wird angezeigt. Daher sollte es an diesem Punkt verarbeitet werden und den Zeitpunkt des Austauschs berücksichtigen. |
Direkt nach dem erfolgreichen Kaufvorgang (Back-End) |
SUBSCRIPTION_PURCHASED-RTDNs werden nicht nach dem Kaufvorgang gesendet. Das Backend wurde noch nicht über den neuen Kauf informiert. |
Die SUBSCRIPTION_PURCHASED-RTDN mit der alten product_id wird sofort nach dem Kaufvorgang für das neue Kauftoken gesendet. Durch den Aufruf der Methode purchases.subscriptionsv2.get mit dem neuen Kauftoken wird ein Kauf mit einer Startzeit (startTime) zurückgegeben. gibt die Kaufzeit mit zwei Werbebuchungen an:
SUBSCRIPTION_EXPIRED für das alte Kauftoken gesendet. Wenn Sie die Methode purchases.subscriptionsv2.get mit dem alten Kauftoken aufrufen, wird es als abgelaufen angezeigt. Die Berechtigung für das alte Abo wird für die verbleibende Zeit auf den neuen Kauf übertragen. |
Bei einem Ersatz – erste Verlängerung nach dem Kaufvorgang (App) |
Das neue Kauftoken wird jetzt angezeigt und sollte verarbeitet werden. |
Der neue Kauf sollte bereits verarbeitet worden sein, als der Kaufvorgang erfolgreich war. Aus diesem Grund sollte in der App nur sichergestellt werden, dass die richtige Berechtigung gewährt wurde. |
Bei Ersatz – erste Verlängerung nach dem Kaufvorgang (Back-End) |
Der neue Kauf kann jetzt verarbeitet und bestätigt werden, wenn das erste SUBSCRIPTION_RENEWED RTDN gesendet wird. Mit der |
Der neue Kauf wurde verarbeitet und bestätigt, als die SUBSCRIPTION_PURCHASED RTDN für das neue Kauftoken gesendet und als „startTime“ aufgezeichnet wurde. Mit „ReplacementMode.DEFERRED“ folgen die ersten Verlängerungen dem Standardverhalten jeder anderen Verlängerung und Sie müssen beim Eintreten dieses Ereignisses keine spezielle Logik verwenden. Wenn Sie die Methode purchases.subscriptionsv2.get mit dem neuen Kauftoken aufrufen, wird ein Kauf mit zwei Positionen zurückgegeben:
|
„ReplacementMode.DEFERRED“ sollte ab jetzt anstelle des eingestellten Modus verwendet werden ProrationMode.DEFERRED, da sie dasselbe Verhalten in Bezug auf die Berechtigung zeigt ändert sich, aber bietet eine Möglichkeit zur Verwaltung des Kaufs, die mit der auf andere neue Käufe auswirken.
Kundenverwaltung
Mit Entwicklerbenachrichtigungen in Echtzeit können Sie in Echtzeit erkennen, Nutzer kündigt den Vorgang. Wenn ein Nutzer kündigt, aber vor dem Abo abgelaufen ist, kannst du Push-Benachrichtigungen oder In-App-Nachrichten senden, um um sie erneut zu abonnieren.
Nachdem ein Nutzer sein Abo gekündigt hat, kannst du versuchen, ihn zurückzugewinnen in deiner App oder über den Play Store. In der folgenden Tabelle wird beschrieben, verschiedene Abo-Szenarien mit zugehörigen Aktionen zur Rückgewinnung App-Anforderungen.
Vor Ablauf des Abos | Nach Ablauf des Abos | |||
In-App | Im Play Store | In-App | Im Play Store | |
Rückgewinnungsfunktion | In-App-Abo | Wiederherstellen | In-App-Abo | Erneut abonnieren |
Nutzer durchläuft den Bezahlvorgang | Ja | Nein | Ja | Ja |
Nutzerabo bleibt mit derselben Artikelnummer verknüpft | Nutzer können sich für dieselbe oder eine andere Artikelnummer registrieren | Ja | Nutzer können sich für dieselbe oder eine andere Artikelnummer registrieren | Ja |
Erstellt ein neues Kauftoken | Ja | Nein | Ja | Ja |
Standardmäßig aktiviert | Nein | Ja, Support für alle Entwickler erforderlich | Nein |
Apps ohne Billing Library 2.0+: Nein Apps mit Billing Library 2.0+: Ja. Entwickler können die Funktion in der Console deaktivieren. |
Wann fallen Kosten an? |
Bei Verwendung derselben SKU: Ende des aktuellen Abrechnungszeitraums. Bei Verwendung einer anderen Artikelnummer: hängt vom Zuteilungsmodus ab. |
Ende des aktuellen Abrechnungszeitraums | Sofort | Sofort |
Implementierung erforderlich | Bereitstellen eine Benutzeroberfläche für die Neuanmeldung in Ihrer App |
Änderung des Abostatus erkennen Deeplink zum Play Store |
Bereitstellung einer Benutzeroberfläche für die Neuregistrierung in Ihrer App | Umgang mit Out-of-App-Käufen |
Vor Ablauf des Abos – In-App
Für Abos, die gekündigt wurden, aber noch nicht abgelaufen sind, kannst du Abonnenten können ihr Abo in Ihrer App reaktivieren, indem sie die wie bei neuen Abonnenten. Achten Sie darauf, dass Ihre UI gibt an, dass der Nutzer ein Abo hat. Zum Beispiel könnten Sie das aktuelle Ablaufdatum und den wiederkehrenden Preis des Nutzers eine Schaltfläche Wieder aktivieren.
In den meisten Fällen möchten Sie Nutzern denselben Preis und dieselbe Artikelnummer anbieten, die sie auch haben. die Sie bereits abonniert hatten:
- Kaufe ein neues Abo mit derselben Artikelnummer.
- Das neue Abo ersetzt das alte und wird am selben Ende verlängert Datum. Das alte Abo wird sofort als abgelaufen markiert.
- Beispiel: Achilles hat ein Abo für die Beispiel-Musik-App und die Abo läuft am 1. August aus. Am 10. Juli abonniert er die erhalten Sie ein einmonatiges Abo zum selben Preis pro Monat. Das neue Abo wird anteilig mit dem verbleibenden Guthaben verrechnet, ist sofort aktiv und immer noch wird am 1. August verlängert.
Wenn Sie einen anderen Preis anbieten möchten, z. B. eine neue kostenlose Testversion oder einen Rückgewinnungsrabatt. Sie können dem Nutzer stattdessen eine andere Artikelnummer anbieten:
- Führen Sie ein Upgrade oder Downgrade mit der anderen Artikelnummer aus.
mit dem Ersetzungsmodus
WITHOUT_PRORATION
. - Das neue Abo ersetzt das alte und wird am selben Ende verlängert
Datum. Dem Nutzer wird der Preis der neuen Artikelnummer in Rechnung gestellt, einschließlich
Einführungspreise am ursprünglichen Ablaufdatum. Wenn das alte Abo
mit einer verschleierten Konto-ID erstellt wurde, muss dieselbe ID übergeben werden.
auf die
BillingFlowParams
für Upgrades und Downgrades. - Beispiel: Achilles hat ein Abo für die Beispiel-Musik-App und die Abo läuft am 1. August aus. Am 10. Juli abonniert er die ein Jahresabo zum Einführungspreis. Das neue Abo sofort aktiv ist und dem Nutzer der Einführungspreis 1. August
- Wenn du ein kostenloses Probeabo oder einen Einführungspreis in deine Artikelnummer aufnehmen möchtest, um sicherzustellen, dass der Nutzer qualifiziert ist, indem Sie ein kostenloses Probeabo pro App zulassen in der Google Play Console, die erhalten Nutzer nur eine kostenlose Testversion pro App.
Wenn du das Kauftoken erhältst,
die Kaufabwicklung abwickeln,
wie bei einem neuen Abo. Außerdem kann die Google Play Developer API
gibt ein linkedPurchaseToken
in der Aboressource zurück. Achten Sie darauf,
Das angegebene Token entwerten
in linkedPurchaseToken
, damit das alte Token nicht für
Zugriff auf Ihre Dienste zu erhalten.
Vor Ablauf des Abos – im Play Store
Solange das Abo gekündigt wurde, aber noch aktiv ist, können Nutzer die Abonnements im Google Play-Abocenter, indem Sie auf Wieder abonnieren (früher Wiederherstellen). Dadurch bleibt das Abo und das Kauftoken.
<ph type="x-smartling-placeholder">Weitere Informationen zum Wiederherstellen von Abos finden Sie unter Wiederherstellungen.
Nach Ablauf des Abos – In-App
Sie können abgelaufene Abonnenten in Ihrer App neu abonnieren, indem Sie wie bei neuen Abonnenten. Beachten Sie die Folgendes:
- Um Nutzern einen Rabatt anzubieten, können Sie eine Produkt-ID mit Sonderpreis für Ihr Abo, auch Winback-Artikelnummer genannt. Sie können das Angebot in Ihrer App anbieten oder den Nutzer über außerhalb der App, etwa per E-Mail.
- Um ein Abo zur Rückgewinnung zu starten, starte den Kaufvorgang in deinem Android-App, die die Google Play Billing Library verwendet Das Gleiche wie bei einem neuen Abo, aber Sie können die dem Nutzer zur Verfügung stehen.
- Wenn du ein kostenloses Probeabo oder einen Einführungspreis einschließt Artikelnummer, entfernen Sie das Häkchen aus dem Kästchen neben ein kostenloses Probeabo pro App zulassen in der Google Play Console, die erhalten Nutzer nur eine kostenlose Testversion pro App.
- Abonniert der Nutzer dieselbe Artikelnummer noch einmal, hat er keinen Anspruch mehr . Achten Sie darauf, dass Ihre UI dies widerspiegelt.
Wenn du das Kauftoken erhältst,
die Kaufabwicklung abwickeln,
wie bei einem neuen Abo. Du erhältst keine linkedPurchaseToken
in der Aboressource.
Nach Ablauf des Abos – im Play Store
Wenn diese Option aktiviert ist, können Nutzer dieselbe Artikelnummer bis zu ein Jahr lang danach wieder abonnieren indem du in den Google Play-Abos auf Wieder abonnieren klickst in der Mitte. Dadurch wird ein neues Abo- und Kauftoken generiert.
<ph type="x-smartling-placeholder">Das erneute Abschließen eines Abos gilt als Out-of-App-Kauf. die Best Practices für Käufe, die nicht in Ihrer App getätigt wurden.
Dein Abo bewerben
Sie können Gutscheincodes erstellen, um ausgewählten Nutzern einen verlängerten kostenlosen Testzeitraum zu gewähren. auf ein bestehendes Abo. Weitere Informationen finden Sie unter Gutscheincodes:
Bei kostenlosen Testzeiträumen überprüft Google Play, ob der Nutzer eine gültige Zahlungsmethode hat bevor du den kostenlosen Testzeitraum startest. Einige Nutzer sehen diese Bestätigung möglicherweise als Zahlungsaussetzung oder zur Belastung der Zahlungsmethode verwendet wird. Diese Vorautorisierung oder Belastung ist und wird später rückgängig gemacht oder erstattet.
Nach Ablauf des Testzeitraums wird die Zahlungsmethode des Nutzers mit den vollen Abobetrag.
Wenn ein Nutzer ein Abo während der kostenlosen Testphase kündigt, bleibt das Abo bis zum Ende des Testzeitraums aktiv und es werden keine nach Ablauf des kostenlosen Testzeitraums in Rechnung gestellt.
Stornieren, erstatten oder widerrufen
Sie können die Google Play Developer API bis abbrechen, Erstattung, oder Widerrufen ein Abo abschließen. Diese Funktion ist auch in der Google Play Console
- Kündigen: Nutzer können Abos bei Google Play kündigen. Sie können auch Nutzern die Möglichkeit bieten, das Abo in Ihrer App oder auf Ihrer Website zu kündigen. Ihr wie in der App beschrieben, Kündigungen:
- Erstattung: Nach der Erstattung kann der Nutzer das Abo weiter nutzen. Erstattungen können beispielsweise verwendet werden, wenn ein technischer Fehler aufgetreten ist, hat den Nutzer daran gehindert, auf Ihr Produkt zuzugreifen, aber der Fehler wurde behoben. Wenn Sie einen höheren Betrag als die letzte Zahlung zurückerstatten möchten oder eine teilweise Erstattung veranlassen möchten, müssen Sie die Google Play Console verwenden.
- Widerrufen: Wenn Sie den Zugriff widerrufen, verliert der Nutzer sofort den Zugriff auf die Abo. Diese Methode kann beispielsweise verwendet werden, wenn ein technisches Problem aufgetreten ist Fehler, durch den der Nutzer nicht auf Ihr Produkt zugreifen konnte, und der Nutzer das Produkt nicht mehr verwenden möchte. Ihre App sollte diese wie in den Widerrufe:
In der folgenden Tabelle sind die Unterschiede zwischen Stornierung, Erstattung und Widerrufen.
Verlängerung beenden | Geld zurückerstatten | Zugriff widerrufen | |
<ph type="x-smartling-placeholder"></ph> Abbrechen | Ja | Nein | Nein |
<ph type="x-smartling-placeholder"></ph> Erstattung | Nein | Ja | Nein |
<ph type="x-smartling-placeholder"></ph> Widerrufen | Ja | Ja | Ja |
Abrechnung für einen Abonnenten aufschieben
Sie können das nächste Abrechnungsdatum für einen sich automatisch verlängernden Abonnenten mit
Purchases.subscriptions:defer
aus der Google Play Developer API. Während des Aufschubzeitraums
hat Ihre Inhalte mit uneingeschränktem Zugriff abonniert, Ihnen werden jedoch keine Kosten in Rechnung gestellt. 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 nachträgliche Abrechnung bietet Ihnen folgende Möglichkeiten:
- Bieten Sie Nutzern kostenlosen Zugriff im Rahmen eines Angebots, z. B. eine Woche geschenkt für oder beim Kauf eines Films.
- Gewähren Sie Kunden aus Kulanzgründen kostenlosen Zugang.
Die Abrechnung kann um einen Tag und ein Jahr aufgeschoben werden. pro API-Aufruf. Wenn Sie die Abrechnung noch weiter verschieben möchten, können Sie die API noch einmal aufrufen vor dem neuen Abrechnungsdatum.
Zum Beispiel hat Darcy ein Monatsabo für Online-Inhalte für die Fishing Quarterly App. Normalerweise werden ihr am ersten Tag jeweils 1,25 € in Rechnung gestellt. Monat. Im März nahm sie an einer Onlineumfrage für den App-Publisher teil. Der Publisher belohnt sie mit sechs kostenlosen Wochen, indem er die nächste Zahlung aufschiebt. bis zum 15. Mai, also sechs Wochen nach ihrem zuvor geplanten Abrechnungsdatum. ab dem 1. April Darcy wird für April oder Anfang Mai nichts berechnet und trotzdem auf die Inhalte zugreifen kann. Am 15. Mai wird ihr der normale Betrag von 1, 25 € in Rechnung gestellt. Abogebühr für den Monat. Die nächste Verlängerung ist nun der 15. Juni.
Beim Zurückstellen kann es sinnvoll sein, den Nutzer per E-Mail oder in der App zu benachrichtigen. , um ihn über die Änderung des Abrechnungsdatums zu informieren.
Umgang mit abgelehnten Zahlungen
Wenn bei einer Aboverlängerung Zahlungsprobleme auftreten, regelmäßig versuchen, das Abonnement vor der Kündigung für einige Zeit zu verlängern. Dieser Wiederherstellungszeitraum kann aus einem Kulanzzeitraum bestehen, gefolgt von einer Kontosperre. Punkt. In diesem Zeitraum sendet Google E-Mails und Benachrichtigungen an den Nutzer. und fordert ihn auf, seine Zahlungsmethode zu aktualisieren.
Bei einer Zahlungsablehnung beginnt für das Abo eine Kulanzfrist. Punkt, falls einer konfiguriert. Während des Kulanzzeitraums sollten Sie sicherstellen, dass der Nutzer weiterhin Zugriff hat auf die Aboberechtigungen.
Nach Ablauf eines Kulanzzeitraums wird das Abo in einem Konto Hold-Zeitraum. Währenddessen Kontosperre aktiviert haben, solltet ihr darauf achten, dass der Nutzer keinen Zugriff auf die Aboberechtigungen.
Sie können die Dauer des Kulanzzeitraums für jedes Basis-Abo mit automatischer Verlängerung festlegen und in der Google Play Console. Angabe von Längen unter der Standardwerte können die Anzahl der Abos verringern, die nach einer Zahlung wiederhergestellt werden können Ablehnungen.
Um die Wahrscheinlichkeit einer Wiederherstellung des Abos während einer Zahlungsablehnung zu maximieren, können Sie den Nutzer über ein Zahlungsproblem informieren und ihn bitten, es zu beheben.
Sie können dies selbst tun, wie in der Kulanz Punkt und Kontosperre oder die In-App-Messaging-API implementieren, mit der Google eine Nachricht an die Nutzer in Ihrer App zu senden.
In-App-Messaging
Wenn Sie In-App-Messaging mit
InAppMessageCategoryId.TRANSACTIONAL
,
Google Play zeigt Nutzern während des Kulanzzeitraums und einer Kontosperre einmal Nachrichten an
pro Tag ein und bieten ihnen die Möglichkeit, ihre Zahlung zu korrigieren, ohne die App zu verlassen.
Wir empfehlen, diese API jedes Mal aufzurufen, wenn der Nutzer die App öffnet, um festzustellen, ob die Mitteilung angezeigt werden soll.
Wenn der Nutzer sein Abo erfolgreich wiederhergestellt hat, erhältst du den Antwortcode:
SUBSCRIPTION_STATUS_UPDATED
zusammen mit einem Kauftoken. Verwende dann dieses Kauftoken, um die
Google Play Developer API und aktualisieren Sie den Abostatus in Ihrer App.
In-App-Messaging einbinden
Um dem Nutzer In-App-Benachrichtigungen anzuzeigen, verwenden Sie
BillingClient.showInAppMessages()
Hier ist ein Beispiel für das Auslösen des In-App-Messaging-Vorgangs:
Kotlin
val inAppMessageParams = InAppMessageParams.newBuilder() .addInAppMessageCategoryToShow(InAppMessageCategoryId.TRANSACTIONAL) .build() billingClient.showInAppMessages(activity, inAppMessageParams, object : InAppMessageResponseListener() { override fun onInAppMessageResponse(inAppMessageResult: InAppMessageResult) { if (inAppMessageResult.responseCode == InAppMessageResponseCode.NO_ACTION_NEEDED) { // The flow has finished and there is no action needed from developers. } else if (inAppMessageResult.responseCode == InAppMessageResponseCode.SUBSCRIPTION_STATUS_UPDATED) { // The subscription status changed. For example, a subscription // has been recovered from a suspend state. Developers should // expect the purchase token to be returned with this response // code and use the purchase token with the Google Play // Developer API. } } })
Java
InAppMessageParams inAppMessageParams = InAppMessageParams.newBuilder() .addInAppMessageCategoryToShow(InAppMessageCategoryId.TRANSACTIONAL) .build(); billingClient.showInAppMessages(activity, inAppMessageParams, new InAppMessageResponseListener() { @Override public void onInAppMessageResponse(InAppMessageResult inAppMessageResult) { if (inAppMessageResult.responseCode == InAppMessageResponseCode.NO_ACTION_NEEDED) { // The flow has finished and there is no action needed from developers. } else if (inAppMessageResult.responseCode == InAppMessageResponseCode.SUBSCRIPTION_STATUS_UPDATED) { // The subscription status changed. For example, a subscription // has been recovered from a suspend state. Developers should // expect the purchase token to be returned with this response // code and use the purchase token with the Google Play // Developer API. } } });
Ausstehende Abotransaktionen verarbeiten
Ausstehende Transaktionen können bei Erstkäufen, Aufladungen, Upgrades oder
ein Downgrade ausführen. Der Abokauf beginnt mit dem
SUBSCRIPTION_STATE_PENDING
vor dem Wechsel zu
SUBSCRIPTION_STATE_ACTIVE
. Wenn die Transaktion abgelaufen ist oder vom
wird an SUBSCRIPTION_STATE_PENDING_PURCHASE_EXPIRED
weitergeleitet. Du musst
Die Berechtigung des Nutzers sollte erst aktualisiert werden, nachdem die Transaktion durchgeführt wurde.
abgeschlossen.
Änderung des Abostatus für Erstkauf mit ausstehenden Transaktionen ist
ist ganz einfach. Deine App erhält den Status Purchase
mit dem Status PENDING
, wenn die
Nutzer initiiert eine ausstehende Transaktion. Nach Abschluss der Transaktion wird Ihr
App empfängt Purchase
wieder mit dem Status PURCHASED
. A
SubscriptionNotification
Nachricht vom Typ SUBSCRIPTION_PURCHASED
wurde gesendet
mit Ihrem RTDN-Client. Folgen Sie dem normalen Vorgang zur Bestätigung des Kaufs, geben Sie
dem Nutzer Zugriff auf den Inhalt geben und den Kauf bestätigen. Wenn die Transaktion
abläuft oder storniert wird, eine SubscriptionNotification
-Nachricht vom Typ
SUBSCRIPTION_PENDING_PURCHASE_CANCELED
wird an deinen RTDN-Client gesendet. In solchen Fällen
sollte der Nutzer niemals Zugang zu den Inhalten erhalten haben.
Das Aufladen, Upgrade oder Downgrade mit ausstehenden Transaktionen beinhaltet Statusänderungen
sowohl für alte als auch für neue Abos. Wenn der Nutzer einen ausstehenden
Auflade-, Upgrade- oder Downgrade-Transaktion durchführen, erhält deine App Purchase
für
das alte Abo mit einem PendingPurchaseUpdate
-Objekt. Zum jetzigen Zeitpunkt
Nutzer besitzt noch das alte Abo und hat das neue Abo noch nicht erhalten.
noch nicht abonniert haben. getProducts()
und getPurchaseToken()
werden im
Das Objekt PendingPurchaseUpdate
gibt die Produkt-IDs und das Kauftoken von
das neue Abo abzuschließen. Wenn die Transaktion abgeschlossen ist, erhält Ihre App eine
Purchase
mit dem Kauftoken der obersten Ebene für das neue Abo und
ist der Status auf PURCHASED
gesetzt. Eine SubscriptionNotification
-Nachricht vom Typ
SUBSCRIPTION_PURCHASED
wird an deinen RTDN-Client gesendet. Derzeit müssen Sie
das alte Kauftoken durch das neue Kauftoken ersetzen und
den Zugriff des Nutzers auf die Inhalte. Wenn die Transaktion abläuft oder abgebrochen wird, gilt Folgendes:
SubscriptionNotification
Nachricht vom Typ
SUBSCRIPTION_PENDING_PURCHASE_CANCELED
wird an deinen RTDN-Client gesendet. In solchen Fällen
sollte der Nutzer weiterhin Zugriff auf den Inhalt des alten Abonnements haben.