Ressource: ProductPurchase
Eine ProductPurchase-Ressource gibt den Status des In-App-Produktkaufs eines Nutzers an.
| JSON-Darstellung |
|---|
{ "kind": string, "purchaseTimeMillis": string, "purchaseState": integer, "consumptionState": integer, "developerPayload": string, "orderId": string, "purchaseType": integer, "acknowledgementState": integer, "purchaseToken": string, "productId": string, "quantity": integer, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string, "regionCode": string, "refundableQuantity": integer } |
| Felder | |
|---|---|
kind |
Dieser Typ stellt ein „inappPurchase“-Objekt im androidpublisher-Dienst dar. |
purchaseTimeMillis |
Der Zeitpunkt, zu dem das Produkt gekauft wurde, in Millisekunden seit der Epoche (1. Januar 1970). |
purchaseState |
Der Kaufstatus der Bestellung. Möglicher Wert: 0. Gekauft: 1 Abgebrochen 2. Ausstehend |
consumptionState |
Der Nutzungsstatus des In-App-Produkts. Mögliche Werte: 0. Noch nicht verbraucht 1. Konsumiert: |
developerPayload |
Ein vom Entwickler angegebener String mit zusätzlichen Informationen zu einer Bestellung. |
orderId |
Die Bestell-ID, die mit dem Kauf des In-App-Produkts verknüpft ist. |
purchaseType |
Der Typ des Kaufs des In-App-Produkts. Dieses Feld wird nur festgelegt, wenn dieser Kauf nicht über den Standard-In-App-Abrechnungsablauf erfolgt ist. Mögliche Werte: 0. Test (d.h. über ein Lizenztestkonto gekauft) 1. Gutschein (d. h. mit einem Gutscheincode gekauft) Play Points-Käufe sind nicht enthalten. 2. Mit Prämie (d.h. durch Ansehen einer Videoanzeige anstelle einer Zahlung) |
acknowledgementState |
Der Bestätigungsstatus des In-App-Produkts. Möglicher Wert: 0. Noch nicht bestätigt 1. Bestätigt |
purchaseToken |
Das Kauf-Token, das zur Identifizierung dieses Kaufs generiert wurde. Möglicherweise nicht vorhanden. |
productId |
Die Artikelnummer des In-App-Produkts. Möglicherweise nicht vorhanden. |
quantity |
Die Menge, die mit dem Kauf des In-App-Produkts verknüpft ist. Wenn nicht vorhanden, ist die Menge 1. |
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. |
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. |
Methoden |
|
|---|---|
|
Bestätigt den Kauf eines In-App-Artikels. |
|
Verbraucht einen Kauf für einen In-App-Artikel. |
|
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 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. |
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. |