REST Resource: purchases.productsv2

Ressource: ProductPurchaseV2

Eine ProductPurchaseV2-Ressource gibt den Status eines In-App-Produktkaufs eines Nutzers an.

JSON-Darstellung
{
  "productLineItem": [
    {
      object (ProductLineItem)
    }
  ],
  "kind": string,
  "purchaseStateContext": {
    object (PurchaseStateContext)
  },
  "testPurchaseContext": {
    object (TestPurchaseContext)
  },
  "orderId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string,
  "regionCode": string,
  "purchaseCompletionTime": string,
  "acknowledgementState": enum (AcknowledgementState)
}
Felder
productLineItem[]

object (ProductLineItem)

Enthält Informationen auf Artikelebene für ein ProductPurchaseV2-Objekt.

kind

string

Diese Art stellt ein ProductPurchaseV2-Objekt im androidpublisher-Dienst dar.

purchaseStateContext

object (PurchaseStateContext)

Informationen zum Kaufstatus des Kaufs.

testPurchaseContext

object (TestPurchaseContext)

Informationen zu Testkäufen Dieser Wert wird nur für Testkäufe festgelegt.

orderId

string

Die Bestell-ID, die mit dem Kauf des In-App-Produkts verknüpft ist. Darf nicht festgelegt werden, wenn dem Kauf kein Auftrag zugeordnet ist.

obfuscatedExternalAccountId

string

Eine verschleierte Version der ID, die eindeutig mit dem Konto 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#setobfuscatedaccountid angegeben wurde.

obfuscatedExternalProfileId

string

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.

regionCode

string

Der ISO 3166-1-Alpha-2-Code der Abrechnungsregion des Nutzers zum Zeitpunkt der Gewährung des Produkts.

purchaseCompletionTime

string (Timestamp format)

Der Zeitpunkt, zu dem der Kauf erfolgreich war, d.h. zu dem sich der PurchaseState in PURCHASED geändert hat. Dieses Feld wird erst nach Abschluss der Zahlung angezeigt. Wenn der Nutzer beispielsweise eine ausstehende Transaktion (https://developer.android.com/google/play/billing/integrate#pending)) initiiert hat, wird dieses Feld erst ausgefüllt, wenn der Nutzer die zum Abschließen der Transaktion erforderlichen Schritte erfolgreich ausgeführt 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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30"

acknowledgementState

enum (AcknowledgementState)

Nur Ausgabe. Der Bestätigungsstatus des Kaufs.

PurchaseStateContext

Kontext zum Kaufstatus.

JSON-Darstellung
{
  "purchaseState": enum (PurchaseState)
}
Felder
purchaseState

enum (PurchaseState)

Nur Ausgabe. Der Kaufstatus des Kaufs.

PurchaseState

Mögliche Kaufstatus.

Enums
PURCHASE_STATE_UNSPECIFIED Der Kaufstatus ist nicht angegeben. Dieser Wert sollte niemals festgelegt werden.
PURCHASED Erfolgreich gekauft.
CANCELLED Kauf storniert.
PENDING Der Kauf ist noch ausstehend und wurde noch nicht abgeschlossen. Weitere Informationen zum Umgang mit ausstehenden Käufen finden Sie unter https://developer.android.com/google/play/billing/integrate#pending.

TestPurchaseContext

Kontext zu einem Testkauf.

JSON-Darstellung
{
  "fopType": enum (FopType)
}
Felder
fopType

enum (FopType)

Der Zahlungsmitteltyp des Testkaufs.

FopType

Mögliche FOP-Typen.

Enums
FOP_TYPE_UNSPECIFIED FOP-Typ nicht angegeben. Dieser Wert sollte niemals festgelegt werden.
TEST Der Kauf wurde mit einer Testkarte getätigt.

ProductLineItem

Enthält Informationen auf Artikelebene für einen ProductPurchaseV2.

JSON-Darstellung
{
  "productId": string,
  "productOfferDetails": {
    object (ProductOfferDetails)
  }
}
Felder
productId

string

Die ID des gekauften Produkts, z. B. „monthly001“.

productOfferDetails

object (ProductOfferDetails)

Die Angebotsdetails für diesen Artikel.

ProductOfferDetails

Informationen zu Angebotsdetails für eine Kaufposition.

JSON-Darstellung
{
  "offerTags": [
    string
  ],
  "offerId": string,
  "purchaseOptionId": string,
  "rentOfferDetails": {
    object (RentOfferDetails)
  },
  "offerToken": string,
  "quantity": integer,
  "refundableQuantity": integer,
  "consumptionState": enum (ConsumptionState)
}
Felder
offerTags[]

string

Die neuesten Angebots-Tags, die mit dem Angebot verknüpft sind. Sie enthält Tags, die von der Kaufoption übernommen wurden.

offerId

string

Die Angebots-ID. Nur für Angebote vorhanden.

purchaseOptionId

string

Die ID der Kaufoption.

rentOfferDetails

object (RentOfferDetails)

Details zu Mietangeboten Dieser Wert wird nur für Positionen mit Leihartikeln festgelegt.

offerToken

string

Das Angebotstoken pro Transaktion, das für diese Kaufposition verwendet wurde.

quantity

integer

Die Menge, die mit dem Kauf des In-App-Produkts verknüpft ist.

refundableQuantity

integer

Die Menge, die für eine Erstattung infrage kommt, d.h. die Menge, die noch nicht erstattet wurde. Der Wert berücksichtigt mengenbasierte Teilerstattungen und vollständige Erstattungen.

consumptionState

enum (ConsumptionState)

Nur Ausgabe. Der Verbrauchsstatus des Kaufs.

RentOfferDetails

Dieser Typ hat keine Felder.

Informationen zu Angebotsdetails für eine Leihartikelposition.

ConsumptionState

Mögliche Verbrauchsstatus.

Enums
CONSUMPTION_STATE_UNSPECIFIED Der Verbrauchsstatus ist nicht angegeben. Dieser Wert sollte niemals festgelegt werden.
CONSUMPTION_STATE_YET_TO_BE_CONSUMED Noch nicht verbraucht.
CONSUMPTION_STATE_CONSUMED Bereits verwendet.

AcknowledgementState

Bestätigungsstatus des Einmalkaufprodukts.

Enums
ACKNOWLEDGEMENT_STATE_UNSPECIFIED Nicht angegebener Bestätigungsstatus.
ACKNOWLEDGEMENT_STATE_PENDING Der Kauf wurde noch nicht bestätigt.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED Der Kauf wird bestätigt.

Methoden

getproductpurchasev2

Prüft den Kauf- und Nutzungsstatus eines In-App-Artikels.

Fehlercodes

Die Vorgänge dieser Ressource geben die folgenden HTTP-Fehlercodes zurück:

Fehlercode Grund Beschreibung Auflösung
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 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 erforderliche Berechtigung, 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.
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 das Play-Status-Dashboard auf bekannte Ausfälle.