- Ressource: ProductPurchaseV2
- PurchaseStateContext
- PurchaseState
- TestPurchaseContext
- FopType
- ProductLineItem
- ProductOfferDetails
- RentOfferDetails
- ConsumptionState
- AcknowledgementState
- Methoden
Ressource: ProductPurchaseV2
Eine ProductPurchaseV2-Ressource gibt den Status eines In-App-Produktkaufs eines Nutzers an.
| JSON-Darstellung |
|---|
{ "productLineItem": [ { object ( |
| Felder | |
|---|---|
productLineItem[] |
Enthält Informationen auf Artikelebene für ein ProductPurchaseV2-Objekt. |
kind |
Diese Art stellt ein ProductPurchaseV2-Objekt im androidpublisher-Dienst dar. |
purchaseStateContext |
Informationen zum Kaufstatus des Kaufs. |
testPurchaseContext |
Informationen zu Testkäufen Dieser Wert wird nur für Testkäufe festgelegt. |
orderId |
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 |
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 |
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 |
Der ISO 3166-1-Alpha-2-Code der Abrechnungsregion des Nutzers zum Zeitpunkt der Gewährung des Produkts. |
purchaseCompletionTime |
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: |
acknowledgementState |
Nur Ausgabe. Der Bestätigungsstatus des Kaufs. |
PurchaseStateContext
Kontext zum Kaufstatus.
| JSON-Darstellung |
|---|
{
"purchaseState": enum ( |
| Felder | |
|---|---|
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 ( |
| Felder | |
|---|---|
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 ( |
| Felder | |
|---|---|
productId |
Die ID des gekauften Produkts, z. B. „monthly001“. |
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 ( |
| Felder | |
|---|---|
offerTags[] |
Die neuesten Angebots-Tags, die mit dem Angebot verknüpft sind. Sie enthält Tags, die von der Kaufoption übernommen wurden. |
offerId |
Die Angebots-ID. Nur für Angebote vorhanden. |
purchaseOptionId |
Die ID der Kaufoption. |
rentOfferDetails |
Details zu Mietangeboten Dieser Wert wird nur für Positionen mit Leihartikeln festgelegt. |
offerToken |
Das Angebotstoken pro Transaktion, das für diese Kaufposition verwendet wurde. |
quantity |
Die Menge, die mit dem Kauf des In-App-Produkts verknüpft ist. |
refundableQuantity |
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 |
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 |
|
|---|---|
|
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. |