API Voided Purchases

L'API Voided Purchases de Google Play fournit la liste des commandes sont associées à des achats annulés par l'utilisateur. Vous pouvez utiliser des informations de cette liste pour mettre en place un système de révocation qui empêche l'utilisateur accéder aux produits de ces commandes.

Cette API s'applique aux commandes et abonnements ponctuels effectués via une application.

Un achat peut être annulé pour les raisons suivantes :

  • L'utilisateur demande le remboursement de sa commande.
  • L'utilisateur annule sa commande.
  • Une commande est rejetée.
  • Le développeur annule ou rembourse la commande.

  • Google annule ou rembourse la commande.

En utilisant cette API, vous contribuez à créer une expérience plus équilibrée et équitable pour tous les utilisateurs de votre application, en particulier s'il s'agit d'un jeu.

Accès

Pour utiliser l'API Voided Purchases, vous devez être autorisé à afficher des informations financières. Vous accordez les autorisations à l'aide d'un client OAuth ou de service géré. Si vous utilisez un compte de service, activez l'option rapports" au sein de ce compte.

Pour en savoir plus sur l'obtention d'un accès autorisé aux API Google Play Developer, consultez les guides suivants:

Afficher les achats annulés

Utilisez la méthode GET pour demander la liste des achats annulés. Dans votre demande, incluez le nom complet du package de votre application, com.google.android.apps.maps, et le jeton d'autorisation que vous reçues lors de l'obtention de l'accès à l'API.

GET https://www.googleapis.com/androidpublisher/v3/applications/
your_package_name/purchases/voidedpurchases?access_token=your_auth_token

Vous pouvez également inclure les paramètres suivants dans votre requête, chacun étant facultatif:

startTime

Durée, en millisecondes écoulées depuis l'epoch Unix, de la plus ancienne l'achat annulé que vous souhaitez voir dans la réponse. Par défaut, startTime est définie sur il y a 30 jours.

L'API ne peut afficher que les achats annulés qui ont eu lieu dans le passé. 30 jours. Les achats annulés plus anciens ne sont pas inclus dans la réponse, de la valeur que vous avez fournie pour startTime.

<ph type="x-smartling-placeholder">
endTime

Durée, en millisecondes écoulées depuis l'epoch Unix, de la l'achat annulé que vous voulez voir dans la réponse. Par défaut, endTime est défini sur l'heure actuelle.

maxResults
Nombre maximal d'achats annulés qui apparaissent dans chaque réponse. Par par défaut, cette valeur est 1000. Notez que la valeur maximale de ce paramètre est et 1 000.
jeton
Jeton de continuation d'une réponse précédente, vous permettant d'afficher plus résultats.
type

Type d'achats annulés qui apparaissent dans chaque réponse. Si la valeur est définie sur 0, seuls les achats via l'application annulés sont renvoyés. Si la valeur est définie sur 1, les deux éléments dans l'application sont annulés et les abonnements annulés sont retournés. La valeur par défaut est 0.

includeQuantityBasedPartialRefund

Inclure ou non les achats annulés ou les remboursements partiels basés sur la quantité qui ne s'appliquent qu'aux achats de quantités multiples. Si la valeur est true, d'autres achats annulés peuvent être retournés avec voidedQuantity qui indique la quantité remboursée d'un remboursement partiel basé sur la quantité. La valeur par défaut est false.

La réponse est une chaîne JSON qui contient une liste d'achats annulés. S'il y a Le nombre de résultats est supérieur au nombre spécifié dans le paramètre de requête maxResults. , la réponse inclut une valeur nextPageToken, que vous pouvez transmettre à un requête ultérieure pour afficher plus de résultats. Le premier résultat de la liste achat annulé le plus ancien.

{
  "tokenPagination": {
    "nextPageToken": "next_page_token"
  },
  "voidedPurchases": [
    {
      "kind": "androidpublisher#voidedPurchase",
      "purchaseToken": "some_purchase_token",
      "purchaseTimeMillis": "1468825200000",
      "voidedTimeMillis": "1469430000000",
      "orderId": "some_order_id",
      "voidedSource": "0",
      "voidedReason": "4"
    },
    {
      "kind": "androidpublisher#voidedPurchase",
      "purchaseToken": "some_other_purchase_token",
      "purchaseTimeMillis": "1468825100000",
      "voidedTimeMillis": "1470034800000",
      "orderId": "some_other_order_id",
      "voidedSource": "2",
      "voidedReason": "5"
    },
  ]
}

Quotas

L'API Voided Purchases définit les quotas suivants par paquet:

  • 6 000 requêtes par jour. (Une journée commence et se termine à minuit, heure du Pacifique.)
  • 30 requêtes au cours d'une période de 30 secondes

Consignes pour les requêtes initiales

Lors de votre requête API initiale, vous souhaiterez peut-être récupérer toutes les données disponibles pour votre application. Bien que peu probable, ce processus peut épuiser votre quota quotidien. À obtenir les données sur les achats annulés de manière plus sûre et cohérente, suivez ces bonnes pratiques:

  • Utilisez la valeur par défaut pour le paramètre maxResults. De cette façon, si vous utilisez l'intégralité de votre quota de requêtes pour une journée, vous pouvez récupérer achats annulés.
  • Si une réponse inclut une valeur pour nextPageToken, attribuez cette valeur au token lors de votre prochaine requête.

Bonnes pratiques

Lorsque vous utilisez cette API dans votre application, n'oubliez pas d'annuler un achat et qu'il n'existe pas de solution unique dans tous les cas. Vous devez garder vos utilisateurs à l'esprit lorsque vous concevez votre révocation des stratégies et des stratégies. Pour ce faire, vous pouvez appliquer les pratiques recommandées suivantes:

  • Utilisez cette API comme l'un des nombreux éléments d'une stratégie complète pour résoudre les problèmes tout comportement indésirable. Révocation de l'accès aux produits intégrés est généralement plus efficace lorsqu'elle est associée à une application dont les prix sont raisonnables pour les achats via l'application, une conception d'application qui décourage tout comportement indésirable, une base d'utilisateurs solide dont rejette ce type de comportement, et une assistance aux utilisateurs réactive et efficace canaux de distribution.
  • Administrer vos règles de révocation de manière uniforme afin de garantir l'équité pour tous les utilisateurs.
  • Envisagez de créer une règle en préproduction pour traiter les comportements indésirables. Pour Par exemple, commencez par les avertissements dans l'application en cas d'infractions précoces, puis escaladez si le comportement indésirable d'un utilisateur se poursuit. En dernier recours, vous pouvez empêcher un utilisateur d'interagir avec votre application.
  • Lorsque vous mettez en place une règle de révocation et que vous la mettez à jour, utilisez votre les canaux de communication de votre application pour informer vos utilisateurs des changements. Offrez à vos utilisateurs pour bien comprendre ces changements avant qu'ils n'entrent en vigueur dans votre application.
  • Soyez transparent envers vos utilisateurs et informez-les chaque fois que vous prenez des mesures, par exemple révoquant son accès à un produit intégré ; Dans l’idéal, les utilisateurs devraient pouvoir contestent vos décisions, et ces contestations doivent être traitées de manière équitable.
  • Surveiller les formulaires de commentaires et les forums de la communauté pour comprendre ce qui pousse les utilisateurs à se comportent de manière indésirable et la façon dont ils se comportent de tels comportements. Prenez des mesures en conséquence les insights comme première ligne de défense.