- Ressource: SubscriptionPurchaseV2
- SubscriptionState
- PausedStateContext
- CanceledStateContext
- UserInitiatedCancellation
- CancelSurveyResult
- CancelSurveyReason
- SystemInitiatedCancellation
- DeveloperInitiatedCancellation
- ReplacementCancellation
- TestPurchase
- AcknowledgementState
- ExternalAccountIdentifiers
- SubscribeWithGoogleInfo
- SubscriptionPurchaseLineItem
- AutoRenewingPlan
- SubscriptionItemPriceChangeDetails
- PriceChangeMode
- PriceChangeState
- InstallmentPlan
- PendingCancellation
- PriceStepUpConsentDetails
- ConsentState
- PrepaidPlan
- OfferDetails
- DeferredItemReplacement
- DeferredItemRemoval
- SignupPromotion
- OneTimeCode
- VanityCode
- ItemReplacement
- ReplacementMode
- OutOfAppPurchaseContext
- Methoden
Ressource: SubscriptionPurchaseV2
Gibt den Status des Abokaufs eines Nutzers an.
| JSON-Darstellung |
|---|
{ "kind": string, "regionCode": string, "lineItems": [ { object ( |
| Felder | |
|---|---|
kind |
Dieser Typ stellt ein SubscriptionPurchaseV2-Objekt im androidpublisher-Dienst dar. |
regionCode |
ISO 3166-1 Alpha-2-Ländercode für das Abrechnungsland des Nutzers zum Zeitpunkt der Gewährung des Abos. |
lineItems[] |
Informationen auf Artikelebene für einen Abo-Kauf. Die Artikel im selben Kauf sollten entweder alle mit AutoRenewingPlan oder alle mit PrepaidPlan sein. |
startTime |
Zeitpunkt, zu dem das Abo gewährt wurde. Nicht für ausstehende Abos festgelegt (das Abo wurde erstellt, die Zahlung bei der Registrierung steht aber noch aus). Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
subscriptionState |
Der aktuelle Status des Abos. |
latestOrderId |
Verworfen: Verwenden Sie stattdessen „lineItems.latest_successful_order_id“. Die Bestell-ID der letzten Bestellung, die mit dem Kauf des Abos verknüpft ist. Bei Abos mit automatischer Verlängerung ist dies die Bestell-ID der Registrierungsbestellung, wenn sie noch nicht verlängert wurde, oder die ID der letzten wiederkehrenden Bestellung (erfolgreiche, ausstehende oder abgelehnte Bestellung). Bei Prepaid-Abos ist dies die Bestell-ID, die mit dem abgefragten Kauf-Token verknüpft ist. |
linkedPurchaseToken |
Das Kauf-Token des alten Abos, wenn dieses Abo eines der folgenden ist: * Neuregistrierung eines gekündigten, aber nicht abgelaufenen Abos * Upgrade/Downgrade von einem vorherigen Abo. * Umstellung von einem Prepaid-Abo auf ein Abo mit automatischer Verlängerung * Ein automatisch verlängertes Abo in ein Prepaid-Abo umwandeln * Prepaid-Abo aufladen |
pausedStateContext |
Zusätzlicher Kontext zu pausierten Abos. Nur vorhanden, wenn das Abo derzeit den subscriptionState SUBSCRIPTION_STATE_PAUSED hat. |
canceledStateContext |
Zusätzlicher Kontext zu gekündigten Abos. Nur vorhanden, wenn das Abo derzeit den subscriptionState SUBSCRIPTION_STATE_CANCELED oder SUBSCRIPTION_STATE_EXPIRED hat. |
testPurchase |
Wird nur angezeigt, wenn es sich bei diesem Abo-Kauf um einen Testkauf handelt. |
acknowledgementState |
Der Bestätigungsstatus des Abos. |
externalAccountIdentifiers |
Nutzerkonto-ID im Drittanbieterdienst. |
subscribeWithGoogleInfo |
Nutzerprofil, das mit Käufen verknüpft ist, die über „Abonnieren mit Google“ getätigt wurden. |
outOfAppPurchaseContext |
Zusätzlicher Kontext für Käufe außerhalb der App. Diese Informationen sind nur für erneute Abo-Käufe (Abo-Käufe, die nach Ablauf des vorherigen Abos desselben Produkts getätigt wurden) verfügbar, die über das Google Play-Abo-Center getätigt wurden. Dieses Feld wird entfernt, nachdem Sie das Abo bestätigt haben. |
SubscriptionState
Die möglichen Status eines Abos, z. B. ob es aktiv oder gekündigt ist. Die Artikel in einem Abo-Kauf können entweder alle automatisch verlängert werden oder Prepaid-Tarife sein.
| Enums | |
|---|---|
SUBSCRIPTION_STATE_UNSPECIFIED |
Nicht angegebener Abostatus. |
SUBSCRIPTION_STATE_PENDING |
Das Abo wurde erstellt, die Zahlung steht aber noch aus. In diesem Status warten alle Artikel auf die Zahlung. |
SUBSCRIPTION_STATE_ACTIVE |
Abonnement ist aktiv. – (1) Wenn das Abo automatisch verlängert wird, ist mindestens ein Artikel „autoRenewEnabled“ und nicht abgelaufen. – (2) Wenn es sich bei dem Abo um einen Prepaid-Tarif handelt, ist mindestens ein Artikel nicht abgelaufen. |
SUBSCRIPTION_STATE_PAUSED |
Das Abo ist pausiert. Der Status ist nur verfügbar, wenn es sich beim Abo um ein Abo mit automatischer Verlängerung handelt. In diesem Status sind alle Elemente pausiert. |
SUBSCRIPTION_STATE_IN_GRACE_PERIOD |
Das Abo befindet sich im Kulanzzeitraum. Der Status ist nur verfügbar, wenn es sich beim Abo um ein Abo mit automatischer Verlängerung handelt. In diesem Status befinden sich alle Artikel in der Kulanzfrist. |
SUBSCRIPTION_STATE_ON_HOLD |
Das Abo ist vorübergehend ausgesetzt. Der Status ist nur verfügbar, wenn es sich beim Abo um ein Abo mit automatischer Verlängerung handelt. In diesem Status werden alle Artikel zurückgehalten. |
SUBSCRIPTION_STATE_CANCELED |
Das Abo wurde gekündigt, ist aber noch nicht abgelaufen. Der Status ist nur verfügbar, wenn es sich beim Abo um ein Abo mit automatischer Verlängerung handelt. Für alle Artikel ist „autoRenewEnabled“ auf „false“ gesetzt. |
SUBSCRIPTION_STATE_EXPIRED |
Das Abo ist abgelaufen. Alle Elemente haben ein Ablaufdatum in der Vergangenheit. |
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED |
Die ausstehende Transaktion für das Abo wurde storniert. Wenn es sich bei diesem ausstehenden Kauf um ein bestehendes Abo handelt, verwenden Sie „linkedPurchaseToken“, um den aktuellen Status dieses Abos abzurufen. |
PausedStateContext
Informationen zu einem pausierten Abo.
| JSON-Darstellung |
|---|
{ "autoResumeTime": string } |
| Felder | |
|---|---|
autoResumeTime |
Zeitpunkt, zu dem das Abo automatisch fortgesetzt wird. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
CanceledStateContext
Informationen zu einem Abo im Status SUBSCRIPTION_STATE_CANCELED oder SUBSCRIPTION_STATE_EXPIRED.
| JSON-Darstellung |
|---|
{ // Union field |
| Felder | |
|---|---|
Union-Feld cancellation_reason. Der Grund für die Kündigung eines Abos. Für cancellation_reason ist nur einer der folgenden Werte zulässig: |
|
userInitiatedCancellation |
Das Abo wurde vom Nutzer gekündigt. |
systemInitiatedCancellation |
Das Abo wurde vom System gekündigt, z. B. aufgrund eines Abrechnungsproblems. |
developerInitiatedCancellation |
Das Abo wurde vom Entwickler gekündigt. |
replacementCancellation |
Das Abo wurde durch ein neues Abo ersetzt. |
UserInitiatedCancellation
Informationen zu Kündigungen, die von Nutzern initiiert wurden.
| JSON-Darstellung |
|---|
{
"cancelSurveyResult": {
object ( |
| Felder | |
|---|---|
cancelSurveyResult |
Informationen, die der Nutzer angibt, wenn er den Ablauf zum Kündigen des Abos abschließt (Umfrage zum Kündigungsgrund). |
cancelTime |
Der Zeitpunkt, zu dem das Abo vom Nutzer gekündigt wurde. Der Nutzer hat möglicherweise auch nach diesem Zeitraum noch Zugriff auf das Abo. Verwenden Sie „lineItems.expiry_time“, um festzustellen, ob ein Nutzer noch Zugriff hat. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
CancelSurveyResult
Ergebnis der Kündigungsbefragung, wenn das Abo vom Nutzer gekündigt wurde.
| JSON-Darstellung |
|---|
{
"reason": enum ( |
| Felder | |
|---|---|
reason |
Der Grund, den der Nutzer im Fragebogen zur Kündigung ausgewählt hat. |
reasonUserInput |
Wird nur für CANCEL_SURVEY_REASON_OTHERS festgelegt. Das ist die Freitextantwort des Nutzers auf die Umfrage. |
CancelSurveyReason
Der Grund, den der Nutzer in der Kündigungsumfrage ausgewählt hat.
| Enums | |
|---|---|
CANCEL_SURVEY_REASON_UNSPECIFIED |
Der Grund für die Kündigung der Umfrage ist nicht angegeben. |
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE |
Das Abo wurde nicht ausreichend genutzt. |
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES |
Technische Probleme bei der Nutzung der App |
CANCEL_SURVEY_REASON_COST_RELATED |
Probleme mit Kosten. |
CANCEL_SURVEY_REASON_FOUND_BETTER_APP |
Der Nutzer hat eine bessere App gefunden. |
CANCEL_SURVEY_REASON_OTHERS |
Andere Gründe |
SystemInitiatedCancellation
Dieser Typ hat keine Felder.
Informationen zu Kündigungen, die vom Google-System initiiert wurden.
DeveloperInitiatedCancellation
Dieser Typ hat keine Felder.
Spezifische Informationen zu Stornierungen, die von Entwicklern initiiert wurden.
ReplacementCancellation
Dieser Typ hat keine Felder.
Informationen zu Kündigungen aufgrund eines Abo-Ersatzes.
TestPurchase
Dieser Typ hat keine Felder.
Gibt an, ob es sich bei diesem Abo-Kauf um einen Testkauf handelt.
AcknowledgementState
Die möglichen Bestätigungsstatus für ein Abo.
| Enums | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED |
Nicht angegebener Bestätigungsstatus. |
ACKNOWLEDGEMENT_STATE_PENDING |
Das Abo wurde noch nicht bestätigt. |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED |
Das Abo wird bestätigt. |
ExternalAccountIdentifiers
Nutzerkonto-ID im Drittanbieterdienst.
| JSON-Darstellung |
|---|
{ "externalAccountId": string, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string } |
| Felder | |
|---|---|
externalAccountId |
Nutzerkonto-ID im Drittanbieterdienst. Wird nur angezeigt, wenn die Kontoverknüpfung im Rahmen des Abo-Kaufvorgangs erfolgt ist. |
obfuscatedExternalAccountId |
Eine verschleierte Version der ID, die eindeutig mit dem Konto des Nutzers in Ihrer App verknüpft ist. Sie ist bei den folgenden Käufen vorhanden: * Wenn die Kontoverknüpfung im Rahmen des Abo-Kaufvorgangs erfolgt ist. * Sie wurde beim Kauf mit https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid angegeben. |
obfuscatedExternalProfileId |
Eine verschleierte Version der ID, die eindeutig mit dem Profil des Nutzers in Ihrer App verknüpft ist. Nur vorhanden, wenn sie beim Kauf mit https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid angegeben wurde. |
SubscribeWithGoogleInfo
Informationen zu Käufen, die über „Abonnieren mit Google“ getätigt wurden.
| JSON-Darstellung |
|---|
{ "profileId": string, "profileName": string, "emailAddress": string, "givenName": string, "familyName": string } |
| Felder | |
|---|---|
profileId |
Die Google-Profil-ID des Nutzers zum Zeitpunkt des Kaufs des Abos. |
profileName |
Der Profilname des Nutzers zum Zeitpunkt des Abo-Kaufs. |
emailAddress |
Die E-Mail-Adresse des Nutzers zum Zeitpunkt des Abokaufs. |
givenName |
Der Vorname des Nutzers, als das Abo gekauft wurde. |
familyName |
Der Nachname des Nutzers zum Zeitpunkt des Abo-Kaufs. |
SubscriptionPurchaseLineItem
Informationen auf Artikelebene für einen Abo-Kauf.
| JSON-Darstellung |
|---|
{ "productId": string, "expiryTime": string, "latestSuccessfulOrderId": string, // Union field |
| Felder | |
|---|---|
productId |
Die ID des gekauften Produkts, z. B. „monthly001“. |
expiryTime |
Zeitpunkt, zu dem das Abo abgelaufen ist oder abläuft, sofern der Zugriff nicht verlängert wird (z. B. durch Verlängerung). Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
latestSuccessfulOrderId |
Die Bestell-ID der letzten erfolgreichen Bestellung, die mit diesem Artikel verknüpft ist. Nicht vorhanden, wenn der Artikel noch nicht dem Nutzer gehört (z.B. wenn der Artikel durch einen aufgeschobenen Ersatz ersetzt wird). |
Union-Feld plan_type. Der Typ des Abos. Für plan_type ist nur einer der folgenden Werte zulässig: |
|
autoRenewingPlan |
Der Artikel wird automatisch verlängert. |
prepaidPlan |
Der Artikel ist im Voraus bezahlt. |
offerDetails |
Die Angebotsdetails für diesen Artikel. |
Union-Feld deferred_item_change. Das Feld ist vorhanden, wenn für ein Element eine verzögerte Änderung vorliegt. Sie kann entweder entfernt oder ersetzt werden. Für deferred_item_change ist nur einer der folgenden Werte zulässig: |
|
deferredItemReplacement |
Informationen zum Ersatz zurückgestellter Artikel. |
deferredItemRemoval |
Informationen zum verzögerten Entfernen von Elementen. |
signupPromotion |
Details zum Angebot für diesen Artikel. Wird nur festgelegt, wenn bei der Registrierung ein Angebot angewendet wurde. |
itemReplacement |
Details zum ersetzten Artikel. Dieses Feld wird nur ausgefüllt, wenn dieser Artikel einen anderen Artikel in einem vorherigen Abo ersetzt hat, und ist nur 60 Tage nach dem Kauf verfügbar. |
AutoRenewingPlan
Informationen zu einem Abo mit automatischer Verlängerung.
| JSON-Darstellung |
|---|
{ "autoRenewEnabled": boolean, "recurringPrice": { object ( |
| Felder | |
|---|---|
autoRenewEnabled |
Wenn das Abo derzeit auf automatische Verlängerung eingestellt ist, z.B. weil der Nutzer das Abo nicht gekündigt hat |
recurringPrice |
Der aktuelle wiederkehrende Preis des Abos mit automatischer Verlängerung. Der Preis berücksichtigt keine Rabatte und enthält bei Preisen ohne Steuern keine Steuern. Rufen Sie stattdessen die |
priceChangeDetails |
Informationen zur letzten Preisänderung für das Element seit der Registrierung für das Abo. |
installmentDetails |
Die Zusicherung für den Ratenzahlungsplan und Informationen zum Status des Abos mit automatischer Verlängerung. |
priceStepUpConsentDetails |
Informationen zur letzten eingeholten Einwilligung bei Preiserhöhungen. |
SubscriptionItemPriceChangeDetails
Informationen zu Preisänderungen für einen Aboposten.
| JSON-Darstellung |
|---|
{ "newPrice": { object ( |
| Felder | |
|---|---|
newPrice |
Neuer wiederkehrender Preis für den Aboartikel. |
priceChangeMode |
Der Preisänderungsmodus gibt an, wie sich der Preis des Abo-Artikels ändert. |
priceChangeState |
Geben Sie an, in welcher Phase sich die Preisänderung gerade befindet. |
expectedNewPriceChargeTime |
Der Zeitpunkt der Verlängerung, zu dem die Preisänderung für den Nutzer wirksam wird. Dies kann sich in Zukunft ändern, z. B. wenn sich die Verlängerungszeit durch eine Pausierung verschiebt. Dieses Feld wird nur ausgefüllt, wenn die Preisänderung noch nicht in Kraft getreten ist. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
PriceChangeMode
Der Modus der Preisänderung.
| Enums | |
|---|---|
PRICE_CHANGE_MODE_UNSPECIFIED |
Der Modus für die Preisänderung ist nicht angegeben. Dieser Wert sollte niemals festgelegt werden. |
PRICE_DECREASE |
Wenn der Abopreis sinkt. |
PRICE_INCREASE |
Wenn der Abopreis steigt und der Nutzer der Preiserhöhung zustimmen muss. |
OPT_OUT_PRICE_INCREASE |
Wenn der Abopreis im Opt-out-Modus erhöht wird. |
PriceChangeState
Der Status der Preisänderung.
| Enums | |
|---|---|
PRICE_CHANGE_STATE_UNSPECIFIED |
Der Status der Preisänderung ist nicht angegeben. Dieser Wert sollte nicht verwendet werden. |
OUTSTANDING |
Warten darauf, dass der Nutzer der Preisänderung zustimmt. |
CONFIRMED |
Die Preisänderung wird für den Nutzer bestätigt. |
APPLIED |
Die Preisänderung wurde angewendet, d.h., dem Nutzer wird der neue Preis in Rechnung gestellt. |
CANCELED |
Die Preisänderung wurde storniert. |
InstallmentPlan
Informationen zu einem Ratenzahlungsplan.
| JSON-Darstellung |
|---|
{
"initialCommittedPaymentsCount": integer,
"subsequentCommittedPaymentsCount": integer,
"remainingCommittedPaymentsCount": integer,
"pendingCancellation": {
object ( |
| Felder | |
|---|---|
initialCommittedPaymentsCount |
Gesamtzahl der Zahlungen, die der Nutzer anfangs zugesagt hat. |
subsequentCommittedPaymentsCount |
Gesamtzahl der Zahlungen, die der Nutzer nach jedem Verpflichtungszeitraum leisten muss. Wenn das Feld leer ist, wird das Abo nach der Mindestlaufzeit automatisch als normales Abo mit automatischer Verlängerung verlängert. |
remainingCommittedPaymentsCount |
Die Gesamtzahl der zugesagten Zahlungen, die in diesem Verlängerungszyklus noch zu leisten sind. |
pendingCancellation |
Falls vorhanden, wird dieser Ratenplan demnächst storniert. Die Kündigung erfolgt erst, nachdem der Nutzer alle zugesagten Zahlungen geleistet hat. |
PendingCancellation
Dieser Typ hat keine Felder.
Gibt an, ob für den virtuellen Ratenzahlungsplan eine ausstehende Kündigung vorliegt. Die Kündigung erfolgt erst, nachdem der Nutzer alle zugesagten Zahlungen geleistet hat.
PriceStepUpConsentDetails
Informationen zu einer Preiserhöhung, für die die Einwilligung des Nutzers erforderlich ist.
| JSON-Darstellung |
|---|
{ "state": enum ( |
| Felder | |
|---|---|
state |
Nur Ausgabe. Der Status der Einwilligung zur Preiserhöhung. |
consentDeadlineTime |
Die Frist, bis zu der der Nutzer die Einwilligung erteilen muss. Wenn die Einwilligung bis dahin nicht erteilt wird, wird das Abo gekündigt. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
newPrice |
Der neue Preis, für den die Nutzereinwilligung erforderlich ist. |
ConsentState
Der Status der Einwilligung zur Preiserhöhung.
| Enums | |
|---|---|
CONSENT_STATE_UNSPECIFIED |
Nicht angegebener Einwilligungsstatus. |
PENDING |
Der Nutzer hat noch keine Einwilligung erteilt. |
CONFIRMED |
Der Nutzer hat zugestimmt und der neue Preis wird in Kürze in Kraft treten. |
COMPLETED |
Der Nutzer hat zugestimmt und der neue Preis ist in Kraft getreten. |
PrepaidPlan
Informationen zu einem Prepaid-Tarif.
| JSON-Darstellung |
|---|
{ "allowExtendAfterTime": string } |
| Felder | |
|---|---|
allowExtendAfterTime |
Falls vorhanden, ist dies der Zeitpunkt, ab dem Aufladekauf für den Prepaid-Tarif zulässig sind. Bei abgelaufenen Prepaid-Mitgliedschaften nicht vorhanden. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
OfferDetails
Informationen zu Angebotsdetails für eine Kaufposition.
| JSON-Darstellung |
|---|
{ "offerTags": [ string ], "basePlanId": string, "offerId": string } |
| Felder | |
|---|---|
offerTags[] |
Die neuesten Angebots-Tags, die mit dem Angebot verknüpft sind. Sie enthält Tags, die vom Basisplan übernommen wurden. |
basePlanId |
Die ID des Basis-Abos. Für alle Basis-Abos und Angebote verfügbar. |
offerId |
Die Angebots-ID. Wird nur für Angebote mit Rabatt angezeigt. |
DeferredItemReplacement
Informationen zum verzögerten Ersatz von Artikeln.
| JSON-Darstellung |
|---|
{ "productId": string } |
| Felder | |
|---|---|
productId |
Die productId, die die vorhandene productId ersetzen soll. |
DeferredItemRemoval
Dieser Typ hat keine Felder.
Informationen zum verzögerten Ersatz von Artikeln.
SignupPromotion
Das Angebot, das beim Kauf auf diesen Artikel angewendet wurde.
| JSON-Darstellung |
|---|
{ // Union field |
| Felder | |
|---|---|
Union-Feld promotion_type. Die Art des Werbeangebots, das auf den Artikel angewendet wird. Für promotion_type ist nur einer der folgenden Werte zulässig: |
|
oneTimeCode |
Es wurde ein Einmalcode angewendet. |
vanityCode |
Ein Vanity-Code wurde angewendet. |
OneTimeCode
Dieser Typ hat keine Felder.
Ein Gutscheincode für einmaligen Gebrauch.
VanityCode
Ein vordefinierter Gutscheincode, der mehrmals verwendet werden kann.
| JSON-Darstellung |
|---|
{ "promotionCode": string } |
| Felder | |
|---|---|
promotionCode |
Der Gutscheincode. |
ItemReplacement
Details zu einem Abo-Artikel, der ersetzt wird.
| JSON-Darstellung |
|---|
{
"productId": string,
"replacementMode": enum ( |
| Felder | |
|---|---|
productId |
Die Produkt-ID des zu ersetzenden Abo-Postens. |
replacementMode |
Der beim Kauf angewendete Ersatzmodus. |
basePlanId |
Die Basis-Abo-ID des zu ersetzenden Abo-Artikelpostens. |
offerId |
Die Angebots-ID der zu ersetzenden Abo-Werbebuchung, falls zutreffend. |
ReplacementMode
Die Art der Ersetzung für ein Abo.
| Enums | |
|---|---|
REPLACEMENT_MODE_UNSPECIFIED |
Nicht angegebener Ersetzungsmodus. |
WITH_TIME_PRORATION |
Das neue Abo wird anteilig berechnet und die Kosten für das alte Abo werden gutgeschrieben. |
CHARGE_PRORATED_PRICE |
Dem Nutzer wird ein anteiliger Preis für den neuen Tarif berechnet. |
WITHOUT_PRORATION |
Das neue Abo ersetzt das alte, ohne dass die Zeit anteilig berechnet wird. |
CHARGE_FULL_PRICE |
Dem Nutzer wird der volle Preis für das neue Abo in Rechnung gestellt. |
DEFERRED |
Das alte Abo wird gekündigt und das neue Abo tritt in Kraft, sobald das alte abgelaufen ist. |
KEEP_EXISTING |
Der Tarif bleibt bei diesem Ersatzgerät unverändert. |
OutOfAppPurchaseContext
Informationen zu einem Kauf außerhalb der App.
| JSON-Darstellung |
|---|
{
"expiredExternalAccountIdentifiers": {
object ( |
| Felder | |
|---|---|
expiredExternalAccountIdentifiers |
Die Nutzerkonto-ID des letzten abgelaufenen Abos für diese SKU. |
expiredPurchaseToken |
Das Kauf-Token des zuletzt abgelaufenen Abos. Dieses Kauf-Token darf nur verwendet werden, um den Nutzer zu identifizieren, wenn die Verknüpfung zwischen dem Kauf-Token und dem Nutzer in Ihrer Datenbank gespeichert ist. Damit kann die Google Developer API nicht aufgerufen werden, wenn seit dem Ablauf mehr als 60 Tage vergangen sind. |
Methoden |
|
|---|---|
|
Kündigen Sie den Kauf des Abos für den Nutzer. |
|
Metadaten zu einem Abo abrufen |
|
Widerrufen Sie den Abokauf für den Nutzer. |
Fehlercodes
Die Vorgänge dieser Ressource geben die folgenden HTTP-Fehlercodes zurück:
| Fehlercode | Grund | Beschreibung | Auflösung |
|---|---|---|---|
400 / 410 |
subscriptionExpired |
Das Abo ist abgelaufen und der angeforderte Vorgang kann nicht ausgeführt werden. | Prüfen Sie das Ablaufdatum des Abos. Dieser Vorgang ist für abgelaufene Abos nicht zulässig. |
400 |
subscriptionInvalidArgument |
In der Anfrage für das Abo wurde ein ungültiges Argument angegeben. | Sehen Sie in der API-Dokumentation nach, ob alle erforderlichen Felder angegeben und korrekt formatiert sind. |
400 |
invalidPurchaseState |
Der Kauf hat keinen gültigen Status für den angeforderten Vorgang. Möglicherweise versuchen Sie, einen bereits genutzten Kauf zu bestätigen oder ein Abo zu kündigen, das nicht aktiv ist. | Prüfen Sie den aktuellen Status der Ressource mit der entsprechenden Get API, bevor Sie den Vorgang ausführen. Achten Sie darauf, dass sich die Ressource in einem geeigneten Zustand für die Aktion befindet. |
400 |
invalidValue |
In der Anfrage wurde ein ungültiger Wert angegeben. Dieser Fehler wird häufig zurückgegeben, wenn das Kauf-Token fehlerhaft oder ungültig ist. | Korrigieren Sie den ungültigen Feldwert im Anfragetext oder in den Parametern anhand der API-Referenz. |
400 |
prepaidSubscriptionNotSupported |
Der angeforderte Vorgang wird für Prepaid-Abos nicht unterstützt. | Prüfen Sie, ob der Vorgang für den Abotyp gilt. Dieser Fehler tritt nur bei Methoden wie „Cancel“, „Defer“, „Refund“ oder „Revoke“ auf. |
400 |
productNotOwnedByUser |
Das angegebene Kauf-Token ist gültig, der Nutzer besitzt das Produkt aber derzeit nicht. Das kann passieren, wenn der Kauf vor der Bestätigung erstattet, widerrufen oder abgelaufen ist. | Prüfen Sie den aktuellen Status der Ressource mit der entsprechenden Get API, bevor Sie den Vorgang ausführen. Achten Sie darauf, dass sich die Ressource in einem geeigneten Zustand für die Aktion befindet. |
400 |
purchaseTokenMismatch |
Das angegebene Kauf-Token stimmt nicht mit dem Kauf, dem Paketnamen, der Abo-ID oder der Produkt-ID überein. | Prüfen Sie, ob alle Angaben im Antrag korrekt sind und zueinander passen. |
400 |
required |
In der Anfrage fehlt ein erforderliches Feld oder ein erforderlicher Parameter. | In der API-Dokumentation finden Sie Informationen dazu, ob alle Pflichtfelder und ‑parameter enthalten sind. |
400 |
unsupportedIabType |
Der Vorgang wird für den angegebenen In-App-Abrechnungstyp nicht unterstützt. | Achten Sie darauf, dass die API-Methode mit dem verwalteten Elementtyp kompatibel ist. |
403 |
userInsufficientPermission |
Der Nutzer hat nicht die erforderlichen Berechtigungen, um den angeforderten Vorgang auszuführen. | Prüfen Sie, ob der authentifizierte Nutzer die erforderlichen Berechtigungen in der Google Play Console hat. Weitere Informationen finden Sie unter Dienstkonto verwenden. |
404 |
notFound |
Die angeforderte Ressource wurde nicht gefunden. | Prüfen Sie, ob die Kennzeichnungen (z.B. Kauf-Token, Paketname, Produkt-ID, Abo-ID) korrekt sind. |
409 |
concurrentUpdate |
Es wurde versucht, ein Objekt zu aktualisieren, das gleichzeitig aktualisiert wird. | Wiederholen Sie die Anfrage mit exponentiellem Backoff. Vermeiden Sie gleichzeitige Änderungen an derselben Ressource. |
410 |
purchaseTokenNoLongerValid |
Das Kauf-Token ist dauerhaft ungültig, weil das zugehörige Nutzerkonto gelöscht wurde oder der Kaufdatensatz nicht mehr vorhanden ist. | Verwenden Sie dieses Kauf-Token nicht mehr. |
410 |
subscriptionNoLongerAvailable |
Der Abo-Kauf kann nicht mehr abgefragt werden, da er schon zu lange abgelaufen ist. | Diese Fehlermeldung weist darauf hin, dass das Abo seit mehr als 60 Tagen abgelaufen ist. Sie sollten diese Abos nicht mehr abfragen. |
5xx |
Generic error |
Allgemeiner Fehler auf dem Google Play-Server. | Wiederholen Sie Ihre Anfrage. Wenn das Problem weiterhin besteht, wenden Sie sich an Ihren Google Play-Kundenbetreuer oder senden Sie eine Supportanfrage. Prüfen Sie im Play-Status-Dashboard, ob bekannte Ausfälle vorliegen. |