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 |
Ce type représente un objet inappPurchase dans le service androidpublisher. |
purchaseTimeMillis |
L'heure à laquelle le produit a été acheté, en millisecondes écoulées depuis l'epoch (1er janvier 1970). |
purchaseState |
L'état de l'achat de la commande, Les valeurs possibles sont : 0. Acheté 1. Annulation 2. En attente |
consumptionState |
État de consommation du produit intégré. Les valeurs possibles sont : 0. À consommer 1. A consommé |
developerPayload |
Une chaîne spécifiée par le développeur contenant des informations supplémentaires sur une commande. |
orderId |
ID de la commande associée à l'achat du produit intégré. |
purchaseType |
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 |
État de confirmation de réception du produit intégré. Les valeurs possibles sont : 0. Non reconnue 1. Confirmé |
purchaseToken |
Jeton d'achat généré pour identifier cet achat. Peut ne pas être présent. |
productId |
Code SKU du produit intégré. Peut ne pas être présent. |
quantity |
Quantité associée à l'achat du produit intégré. Si elle n'est pas indiquée, la quantité est définie sur 1. |
obfuscatedExternalAccountId |
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 |
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 |
Code de région de facturation ISO 3166-1 alpha-2 de l'utilisateur au moment où le produit lui a été accordé. |
refundableQuantity |
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 |
|
|---|---|
|
Confirme l'achat d'un article intégré à l'application. |
|
Consomme un achat pour un article intégré. |
|
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. |