REST Resource: purchases.products

Ressource : ProductPurchase

Une ressource ProductPurchase indique l'état de l'achat d'un produit intégré par un utilisateur.

Représentation JSON
{
  "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
}
Champs
kind

string

Ce type représente un objet inappPurchase dans le service androidpublisher.

purchaseTimeMillis

string (int64 format)

L'heure à laquelle le produit a été acheté, en millisecondes écoulées depuis l'epoch (1er janvier 1970).

purchaseState

integer

L'état de l'achat de la commande, Les valeurs possibles sont : 0. Acheté 1. Annulation 2. En attente

consumptionState

integer

État de consommation du produit intégré. Les valeurs possibles sont : 0. À consommer 1. A consommé

developerPayload

string

Une chaîne spécifiée par le développeur contenant des informations supplémentaires sur une commande.

orderId

string

ID de la commande associée à l'achat du produit intégré.

purchaseType

integer

Type d'achat du produit intégré. Ce champ n'est défini que si cet achat n'a pas été effectué à l'aide du flux de facturation intégré standard. Les valeurs possibles sont : 0. Test (c'est-à-dire acheté à partir d'un compte de test de licence) 1. Promotionnel (c'est-à-dire acheté à l'aide d'un code promotionnel) N'inclut pas les achats effectués avec des points Play. 2. Avec récompense (c'est-à-dire en regardant une annonce vidéo au lieu de payer)

acknowledgementState

integer

État de confirmation de réception du produit intégré. Les valeurs possibles sont : 0. Non reconnue 1. Confirmé

purchaseToken

string

Jeton d'achat généré pour identifier cet achat. Peut ne pas être présent.

productId

string

Code SKU du produit intégré. Peut ne pas être présent.

quantity

integer

Quantité associée à l'achat du produit intégré. Si elle n'est pas indiquée, la quantité est définie sur 1.

obfuscatedExternalAccountId

string

Version obscurcie de l'ID associé de manière unique au compte de l'utilisateur dans votre application. N'est présent que s'il a été spécifié à l'aide de https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid lors de l'achat.

obfuscatedExternalProfileId

string

Version obscurcie de l'ID associé de manière unique au profil de l'utilisateur dans votre application. N'est présent que s'il a été spécifié à l'aide de https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid lors de l'achat.

regionCode

string

Code de région de facturation ISO 3166-1 alpha-2 de l'utilisateur au moment où le produit lui a été accordé.

refundableQuantity

integer

Quantité éligible au remboursement, c'est-à-dire la quantité qui n'a pas été remboursée. La valeur reflète les remboursements partiels et totaux basés sur la quantité.

Méthodes

acknowledge

Confirme l'achat d'un article intégré à l'application.

consume

Consomme un achat pour un article intégré.

get

Vérifie l'état d'achat et de consommation d'un article intégré.

Codes d'erreur

Les opérations de cette ressource renvoient les codes d'erreur HTTP suivants :

Code d'erreur Motif Description Solution
400 invalidPurchaseState L'achat n'est pas dans un état valide pour effectuer l'opération demandée. Par exemple, vous pouvez essayer de confirmer un achat déjà consommé ou de résilier un abonnement inactif. Vérifiez l'état actuel de la ressource à l'aide de l'API Get correspondante avant de tenter l'opération. Assurez-vous que la ressource est dans un état approprié pour l'action.
400 invalidValue Une valeur incorrecte a été fournie dans la demande. Cette erreur est souvent renvoyée pour un jeton d'achat mal formé ou non valide. Corrigez la valeur de champ non valide dans le corps ou les paramètres de la requête en vous basant sur la documentation de référence de l'API.
400 productNotOwnedByUser Le jeton d'achat fourni est valide, mais l'utilisateur ne possède pas le produit actuellement. Cela peut se produire si l'achat a été remboursé, révoqué ou a expiré avant l'accusé de réception. Vérifiez l'état actuel de la ressource à l'aide de l'API Get correspondante avant de tenter l'opération. Assurez-vous que la ressource est dans un état approprié pour l'action.
400 purchaseTokenMismatch Le jeton d'achat fourni ne correspond pas à l'achat, au nom du package, à l'ID d'abonnement ni à l'ID du produit. Vérifiez que toutes les informations de la demande sont correctes et correspondent les unes aux autres.
400 required Un champ ou un paramètre obligatoire est manquant dans la requête. Consultez la documentation de l'API pour vous assurer d'inclure tous les champs et paramètres obligatoires.
400 unsupportedIabType L'opération n'est pas compatible avec le type de facturation via l'application spécifié. Assurez-vous que la méthode d'API est compatible avec le type d'élément géré.
403 userInsufficientPermission L'utilisateur ne dispose pas des autorisations nécessaires pour effectuer l'opération demandée. Assurez-vous que l'utilisateur authentifié dispose des autorisations nécessaires dans la Google Play Console. Pour en savoir plus, consultez Utiliser un compte de service.
404 notFound La ressource demandée est introuvable. Vérifiez que les identifiants (par exemple, le jeton d'achat, le nom du package, l'ID du produit ou l'ID de l'abonnement) sont corrects.
409 concurrentUpdate Une tentative de mise à jour d'un objet en cours de mise à jour simultanée a été effectuée. Réessayez la requête avec un intervalle exponentiel entre les tentatives. Évitez de modifier simultanément la même ressource.
5xx Generic error Erreur générique sur le serveur Google Play. Réessayez d'envoyer votre demande.

Si le problème persiste, contactez votre responsable de compte Google Play ou envoyez une demande d'assistance. Consultez le tableau de bord d'état Play pour connaître les éventuelles interruptions de service.