REST Resource: purchases.subscriptions

Ressource : SubscriptionPurchase

Une ressource SubscriptionPurchase indique l'état de l'achat d'abonnement d'un utilisateur.

Représentation JSON
{
  "kind": string,
  "startTimeMillis": string,
  "expiryTimeMillis": string,
  "autoResumeTimeMillis": string,
  "autoRenewing": boolean,
  "priceCurrencyCode": string,
  "priceAmountMicros": string,
  "introductoryPriceInfo": {
    object (IntroductoryPriceInfo)
  },
  "countryCode": string,
  "developerPayload": string,
  "paymentState": integer,
  "cancelReason": integer,
  "userCancellationTimeMillis": string,
  "cancelSurveyResult": {
    object (SubscriptionCancelSurveyResult)
  },
  "orderId": string,
  "linkedPurchaseToken": string,
  "purchaseType": integer,
  "priceChange": {
    object (SubscriptionPriceChange)
  },
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string,
  "profileId": string,
  "acknowledgementState": integer,
  "externalAccountId": string,
  "promotionType": integer,
  "promotionCode": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Champs
kind

string

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

startTimeMillis

string (int64 format)

Heure à laquelle l'abonnement a été accordé, en millisecondes depuis l'epoch.

expiryTimeMillis

string (int64 format)

Heure à laquelle l'abonnement expirera, en millisecondes depuis l'epoch.

autoResumeTimeMillis

string (int64 format)

Heure à laquelle l'abonnement sera automatiquement réactivé, en millisecondes depuis l'epoch. Présent uniquement si l'utilisateur a demandé à suspendre l'abonnement.

autoRenewing

boolean

Indique si l'abonnement sera automatiquement renouvelé à son échéance actuelle.

priceCurrencyCode

string

Code de devise ISO 4217 pour le prix de l'abonnement. Par exemple, si le prix est exprimé en livres sterling, priceCurrencyCode est "GBP".

priceAmountMicros

string (int64 format)

Prix de l'abonnement. Pour les pays où les taxes sont exclues, le prix ne comprend pas les taxes. Pour les pays où les taxes sont incluses dans le prix, le prix inclut les taxes. Le prix est exprimé en micro-unités, où 1 000 000 de micro-unités représente une unité de la devise. Par exemple, si le prix de l'abonnement est de 1,99 €, priceAmountMicros est défini sur 1990000.

introductoryPriceInfo

object (IntroductoryPriceInfo)

Informations sur le prix découverte de l'abonnement. Cette mention n'apparaît que si l'abonnement a été souscrit à un prix de lancement.

Ce champ n'indique pas si l'abonnement est actuellement associé à un prix découverte.

countryCode

string

Code pays/région de facturation ISO 3166-1 alpha-2 de l'utilisateur au moment où l'abonnement a été accordé.

developerPayload

string

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

paymentState

integer

État du paiement de l'abonnement. Les valeurs possibles sont : 0. Paiement en attente 1. Paiement reçu 2. Essai sans frais 3. Mise à niveau/rétrogradation différée en attente

Non présent pour les abonnements annulés ou expirés.

cancelReason

integer

La raison pour laquelle un abonnement a été résilié ou n'est pas renouvelé automatiquement. Les valeurs possibles sont : 0. L'utilisateur a résilié l'abonnement 1. L'abonnement a été résilié par le système, par exemple en raison d'un problème de facturation. L'abonnement a été remplacé par un nouvel abonnement 3. L'abonnement a été résilié par le développeur

userCancellationTimeMillis

string (int64 format)

Heure à laquelle l'abonnement a été résilié par l'utilisateur, en millisecondes depuis l'epoch. Présent uniquement si cancelReason est défini sur 0.

cancelSurveyResult

object (SubscriptionCancelSurveyResult)

Informations fournies par l'utilisateur lorsqu'il suit la procédure de résiliation de l'abonnement (enquête sur la raison de la résiliation).

orderId

string

ID de la dernière commande récurrente associée à l'achat de l'abonnement. Si l'abonnement a été résilié parce que le paiement a été refusé, il s'agit de l'ID de commande du paiement refusé.

linkedPurchaseToken

string

Jeton d'achat de l'achat d'origine si cet abonnement est l'un des suivants : 0. Se réabonner à un abonnement résilié, mais non expiré 1. Passer à un abonnement supérieur ou inférieur

Par exemple, supposons qu'un utilisateur s'inscrive et que vous receviez le jeton d'achat X. Ensuite, l'utilisateur résilie son abonnement et suit la procédure de réinscription (avant l'expiration de son abonnement), et vous recevez le jeton d'achat Y. Enfin, l'utilisateur passe à un abonnement supérieur et vous recevez le jeton d'achat Z. Si vous appelez cette API avec le jeton d'achat Z, ce champ sera défini sur Y. Si vous appelez cette API avec le jeton d'achat Y, ce champ sera défini sur X. Si vous appelez cette API avec le jeton d'achat X, ce champ ne sera pas défini.

purchaseType

integer

Type d'achat de l'abonnement. Ce champ n'est défini que si cet achat n'a pas été effectué à l'aide du flux de facturation standard des achats via les applications. 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)

priceChange

object (SubscriptionPriceChange)

Les dernières informations disponibles sur les changements de prix. Cette ligne ne s'affiche que lorsqu'un changement de prix est prévu pour l'abonnement, mais n'a pas encore été appliqué.

Une fois l'abonnement renouvelé au nouveau prix ou résilié, aucune information sur le changement de prix ne sera renvoyée.

profileName

string

Nom du profil utilisateur au moment de la souscription de l'abonnement. N 'est présent que pour les achats effectués avec S'abonner avec Google.

emailAddress

string

Adresse e-mail de l'utilisateur au moment de la souscription de l'abonnement. N 'est présent que pour les achats effectués avec S'abonner avec Google.

givenName

string

Prénom de l'utilisateur lors de la souscription de l'abonnement. N 'est présent que pour les achats effectués avec S'abonner avec Google.

familyName

string

Nom de famille de l'utilisateur au moment de la souscription de l'abonnement. N 'est présent que pour les achats effectués avec S'abonner avec Google.

profileId

string

ID du profil Google de l'utilisateur lors de la souscription de l'abonnement. N 'est présent que pour les achats effectués avec S'abonner avec Google.

acknowledgementState

integer

État de confirmation de réception du produit d'abonnement. Les valeurs possibles sont : 0. 1 à confirmer Confirmé

externalAccountId

string

Identifiant du compte utilisateur dans le service tiers. Présent uniquement si l'association de compte a eu lieu dans le parcours d'achat de l'abonnement.

promotionType

integer

Type de promotion appliquée à cet achat. Ce champ n'est défini que si une promotion a été appliquée lors de l'achat de l'abonnement. Les valeurs possibles sont : 0. Code à usage unique 1. Code personnalisé

promotionCode

string

Code promotionnel appliqué à cet achat. Ce champ n'est défini que si une promotion avec code personnalisé est appliquée lors de la souscription.

obfuscatedExternalAccountId

string

Version obscurcie de l'ID associé de manière unique au compte de l'utilisateur dans votre application. Présent pour les achats suivants : * Si l'association de compte a eu lieu lors du parcours d'achat de l'abonnement. * 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.

IntroductoryPriceInfo

Contient les informations sur le prix de lancement d'un abonnement.

Représentation JSON
{
  "introductoryPriceCurrencyCode": string,
  "introductoryPriceAmountMicros": string,
  "introductoryPricePeriod": string,
  "introductoryPriceCycles": integer
}
Champs
introductoryPriceCurrencyCode

string

Code de devise ISO 4217 pour le prix de l'abonnement de lancement. Par exemple, si le prix est exprimé en livres sterling, priceCurrencyCode est "GBP".

introductoryPriceAmountMicros

string (int64 format)

Prix découverte de l'abonnement, hors taxes. La devise est identique à priceCurrencyCode. Le prix est exprimé en micro-unités, où 1 000 000 de micro-unités représente une unité de la devise. Par exemple, si le prix de l'abonnement est de 1,99 €, priceAmountMicros est défini sur 1990000.

introductoryPricePeriod

string

Période du prix découverte, spécifiée au format ISO 8601. Les valeurs courantes sont (sans s'y limiter) "P1W" (une semaine), "P1M" (un mois), "P3M" (trois mois), "P6M" (six mois) et "P1Y" (un an).

introductoryPriceCycles

integer

Nombre de périodes de facturation pour lesquelles le prix de lancement est proposé.

SubscriptionCancelSurveyResult

Informations fournies par l'utilisateur lorsqu'il suit la procédure de résiliation de l'abonnement (enquête sur la raison de la résiliation).

Représentation JSON
{
  "cancelSurveyReason": integer,
  "userInputCancelReason": string
}
Champs
cancelSurveyReason

integer

Motif de résiliation choisi par l'utilisateur dans l'enquête. Les valeurs possibles sont : 0. Autre 1. Je n'utilise pas suffisamment ce service 2. Problèmes techniques 3. Ma décision est liée au coût de l'abonnement 4. J'ai trouvé une meilleure application

userInputCancelReason

string

Motif d'annulation de la saisie personnalisé indiqué par l'utilisateur. N'est présent que lorsque cancelReason est défini sur 0.

SubscriptionPriceChange

Contient les informations sur le changement de prix d'un abonnement, qui peuvent être utilisées pour contrôler le parcours utilisateur lors du changement de prix dans l'application. Il peut s'agir de demander une confirmation à l'utilisateur ou d'adapter l'expérience pour une conversion réussie.

Représentation JSON
{
  "newPrice": {
    object (Price)
  },
  "state": integer
}
Champs
newPrice

object (Price)

Nouveau prix de renouvellement de l'abonnement si le changement de prix est accepté par l'utilisateur.

state

integer

État actuel du changement de prix. Les valeurs possibles sont : 0. En attente : état d'un changement de prix en attente de l'accord de l'utilisateur. Dans cet état, vous pouvez éventuellement demander une confirmation à l'utilisateur à l'aide de l'API In-App. 1. Accepté : état d'un changement de prix accepté. L'abonnement sera renouvelé avec le nouveau prix, sauf s'il est résilié. La modification du prix prendra effet à une date ultérieure, lors du renouvellement de l'abonnement. Notez que la modification peut ne pas être appliquée lors du prochain renouvellement de l'abonnement.

Méthodes

acknowledge

Confirme un achat d'abonnement.

cancel

Annule l'achat d'un abonnement par un utilisateur.

defer

Reporte l'achat d'un abonnement par un utilisateur jusqu'à une date d'expiration future spécifiée.

get
(deprecated)

Obsolète : utilisez plutôt purchases.subscriptionsv2.get.

refund
(deprecated)

Obsolète : utilisez plutôt orders.refund.

revoke
(deprecated)

Obsolète : utilisez plutôt purchases.subscriptionsv2.revoke.

Codes d'erreur

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

Code d'erreur Motif Solution
5xx 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. Pensez à consulter le tableau de bord d'état Play pour connaître les éventuelles interruptions de service connues.

409 Erreur de mise à jour simultanée.

Une tentative de mise à jour d'un objet en cours de mise à jour a été effectuée. Par exemple, un achat est confirmé en appelant la méthode acknowledgePurchase() de la bibliothèque Play Billing et la méthode purchases.products.acknowledge de l'API Play Developer en même temps.

Réessayez d'envoyer votre demande.
410 L'achat d'abonnement n'est plus disponible pour la requête, car il a expiré depuis trop longtemps. Générée lors de l'interrogation d'un abonnement expiré depuis plus de 60 jours. Vous ne devez plus interroger ces abonnements.