REST Resource: purchases.subscriptionsv2

Ressource: SubscriptionPurchaseV2

Indique l'état de l'achat d'abonnement d'un utilisateur.

Représentation JSON
{
  "kind": string,
  "regionCode": string,
  "lineItems": [
    {
      object (SubscriptionPurchaseLineItem)
    }
  ],
  "startTime": string,
  "subscriptionState": enum (SubscriptionState),
  "latestOrderId": string,
  "linkedPurchaseToken": string,
  "pausedStateContext": {
    object (PausedStateContext)
  },
  "canceledStateContext": {
    object (CanceledStateContext)
  },
  "testPurchase": {
    object (TestPurchase)
  },
  "acknowledgementState": enum (AcknowledgementState),
  "externalAccountIdentifiers": {
    object (ExternalAccountIdentifiers)
  },
  "subscribeWithGoogleInfo": {
    object (SubscribeWithGoogleInfo)
  }
}
Champs
kind

string

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

regionCode

string

Code pays/région ISO 3166-1 alpha-2 de l'utilisateur au moment de l'attribution de l'abonnement.

lineItems[]

object (SubscriptionPurchaseLineItem)

Informations au niveau de l'article pour un achat d'abonnement. Les articles d'un même achat doivent tous être associés à AutoRenewingPlan ou à PrepaidPlan.

startTime

string (Timestamp format)

Heure à laquelle l'abonnement a été accordé. Non défini pour les abonnements en attente (l'abonnement a été créé, mais le paiement est en attente lors de l'inscription).

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

subscriptionState

enum (SubscriptionState)

État actuel de l'abonnement.

latestOrderId

string

ID de la dernière commande associée à l'achat de l'abonnement. Pour les abonnements à renouvellement automatique, il s'agit de l'ID de commande de l'abonnement si celui-ci n'a pas encore été renouvelé, ou du dernier ID de commande récurrente (commande réussie, en attente ou refusée). Pour les abonnements prépayés, il s'agit de l'ID de commande associé au jeton d'achat interrogé.

linkedPurchaseToken

string

Le jeton d'achat de l'ancien abonnement si celui-ci est l'un des suivants: * Réinscription à un abonnement résilié mais non expiré * Mise à niveau/Réduction d'un abonnement précédent * Passer d'un abonnement prépayé à un abonnement à renouvellement automatique. * Passer d'un abonnement à renouvellement automatique à un abonnement prépayé. * Recharger un abonnement prépayé.

pausedStateContext

object (PausedStateContext)

Contexte supplémentaire sur les abonnements suspendus. Présent uniquement si l'abonnement a actuellement le statut subscriptionState SUBSCRIPTION_STATE_PAUSED.

canceledStateContext

object (CanceledStateContext)

Contexte supplémentaire sur les abonnements résiliés. Présent uniquement si l'abonnement a actuellement l'état subscriptionState SUBSCRIPTION_STATE_CANCELED ou SUBSCRIPTION_STATE_EXPIRED.

testPurchase

object (TestPurchase)

Présent uniquement si cet achat d'abonnement est un achat test.

acknowledgementState

enum (AcknowledgementState)

État de confirmation de l'abonnement.

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

Identifiant du compte utilisateur dans le service tiers.

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

Profil utilisateur associé aux achats effectués avec "S'abonner avec Google".

SubscriptionState

États possibles d'un abonnement, par exemple s'il est actif ou résilié. Les éléments d'un abonnement peuvent être tous des forfaits à renouvellement automatique ou prépayés.

Enums
SUBSCRIPTION_STATE_UNSPECIFIED État de l'abonnement non spécifié.
SUBSCRIPTION_STATE_PENDING L'abonnement a été créé, mais le paiement est en attente lors de l'inscription. Dans cet état, tous les articles sont en attente de paiement.
SUBSCRIPTION_STATE_ACTIVE L'abonnement est actif. - (1) Si l'abonnement est un forfait à renouvellement automatique, au moins un élément est défini sur "autoRenewEnabled" et n'a pas expiré. - (2) Si l'abonnement est un forfait prépayé, au moins un article n'a pas expiré.
SUBSCRIPTION_STATE_PAUSED L'abonnement est suspendu. Cet état n'est disponible que lorsque l'abonnement est un forfait à renouvellement automatique. Dans cet état, tous les éléments sont mis en veille.
SUBSCRIPTION_STATE_IN_GRACE_PERIOD L'abonnement est en délai de grâce. Cet état n'est disponible que lorsque l'abonnement est un forfait à renouvellement automatique. Dans cet état, tous les articles sont en période de grâce.
SUBSCRIPTION_STATE_ON_HOLD L'abonnement est suspendu. Cet état n'est disponible que lorsque l'abonnement est un forfait à renouvellement automatique. Dans cet état, tous les éléments sont mis en attente.
SUBSCRIPTION_STATE_CANCELED L'abonnement a été résilié, mais n'a pas encore expiré. Cet état n'est disponible que lorsque l'abonnement est un forfait à renouvellement automatique. La valeur "autoRenewEnabled" est définie sur "false" pour tous les éléments.
SUBSCRIPTION_STATE_EXPIRED L'abonnement a expiré. La date d'expiration de tous les éléments est antérieure.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED La transaction en attente pour l'abonnement est annulée. Si cet achat en attente concernait un abonnement existant, utilisez linkedPurchaseToken pour obtenir l'état actuel de cet abonnement.

PausedStateContext

Informations spécifiques à un abonnement en pause.

Représentation JSON
{
  "autoResumeTime": string
}
Champs
autoResumeTime

string (Timestamp format)

Heure à laquelle l'abonnement reprendra automatiquement.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

CanceledStateContext

Informations spécifiques à un abonnement dans les états SUBSCRIPTION_STATE_CANCELED ou SUBSCRIPTION_STATE_EXPIRED.

Représentation JSON
{

  // Union field cancellation_reason can be only one of the following:
  "userInitiatedCancellation": {
    object (UserInitiatedCancellation)
  },
  "systemInitiatedCancellation": {
    object (SystemInitiatedCancellation)
  },
  "developerInitiatedCancellation": {
    object (DeveloperInitiatedCancellation)
  },
  "replacementCancellation": {
    object (ReplacementCancellation)
  }
  // End of list of possible types for union field cancellation_reason.
}
Champs
Champ d'union cancellation_reason. Motif de l'annulation d'un abonnement. cancellation_reason ne peut être qu'un des éléments suivants :
userInitiatedCancellation

object (UserInitiatedCancellation)

L'abonnement a été résilié par l'utilisateur.

systemInitiatedCancellation

object (SystemInitiatedCancellation)

L'abonnement a été résilié par le système, par exemple en raison d'un problème de facturation.

developerInitiatedCancellation

object (DeveloperInitiatedCancellation)

L'abonnement a été résilié par le développeur.

replacementCancellation

object (ReplacementCancellation)

L'abonnement a été remplacé par un nouvel abonnement.

UserInitiatedCancellation

Informations spécifiques aux annulations déclenchées par les utilisateurs.

Représentation JSON
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
Champs
cancelSurveyResult

object (CancelSurveyResult)

Informations fournies par l'utilisateur lorsqu'il termine le parcours de résiliation d'un abonnement (enquête sur la raison de la résiliation).

cancelTime

string (Timestamp format)

Heure à laquelle l'abonnement a été résilié par l'utilisateur. Il est possible que l'utilisateur conserve l'accès à l'abonnement après cette date. Utilisez lineItems.expiry_time pour déterminer si un utilisateur a toujours accès.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

CancelSurveyResult

Résultat de l'enquête de résiliation lorsque l'abonnement a été résilié par l'utilisateur.

Représentation JSON
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
Champs
reason

enum (CancelSurveyReason)

Motif sélectionné par l'utilisateur dans l'enquête sur l'annulation.

reasonUserInput

string

Défini uniquement pour CANCEL_SURVEY_REASON_OTHERS. Il s'agit de la réponse au format libre de l'utilisateur à l'enquête.

CancelSurveyReason

Motif sélectionné par l'utilisateur dans l'enquête sur l'annulation.

Enums
CANCEL_SURVEY_REASON_UNSPECIFIED Motif de résiliation de l'enquête non spécifié.
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE Utilisation insuffisante de l'abonnement
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES Problèmes techniques lors de l'utilisation de l'application
CANCEL_SURVEY_REASON_FOUND_BETTER_APP L'utilisateur a trouvé une meilleure application.
CANCEL_SURVEY_REASON_OTHERS Autres raisons

SystemInitiatedCancellation

Ce type ne comporte aucun champ.

Informations spécifiques aux annulations déclenchées par le système Google.

DeveloperInitiatedCancellation

Ce type ne comporte aucun champ.

Informations spécifiques aux annulations initiées par les développeurs.

ReplacementCancellation

Ce type ne comporte aucun champ.

Informations spécifiques aux résiliations dues au remplacement d'un abonnement.

TestPurchase

Ce type ne comporte aucun champ.

Indique si cet achat d'abonnement est un achat test.

AcknowledgementState

États de confirmation possibles pour un abonnement.

Enums
ACKNOWLEDGEMENT_STATE_UNSPECIFIED État d'acquittement non spécifié.
ACKNOWLEDGEMENT_STATE_PENDING L'abonnement n'a pas encore été confirmé.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED L'abonnement est confirmé.

ExternalAccountIdentifiers

Identifiant du compte utilisateur dans le service tiers.

Représentation JSON
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Champs
externalAccountId

string

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

obfuscatedExternalAccountId

string

Version obscurcie de l'ID associé uniquement 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 d'un 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ée uniquement au profil de l'utilisateur dans votre application. Ne s'affiche que si elle est spécifiée à l'aide de https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid lors de l'achat.

SubscribeWithGoogleInfo

Informations associées aux achats effectués avec "S'abonner avec Google".

Représentation JSON
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
Champs
profileId

string

ID de profil Google de l'utilisateur au moment de l'achat de l'abonnement.

profileName

string

Nom du profil de l'utilisateur au moment de l'achat de l'abonnement.

emailAddress

string

Adresse e-mail de l'utilisateur au moment de la souscription de l'abonnement.

givenName

string

Prénom de l'utilisateur lors de l'achat de l'abonnement.

familyName

string

Nom de famille de l'utilisateur au moment de l'achat de l'abonnement.

SubscriptionPurchaseLineItem

Informations au niveau de l'article pour un achat d'abonnement.

Représentation JSON
{
  "productId": string,
  "expiryTime": string,

  // Union field plan_type can be only one of the following:
  "autoRenewingPlan": {
    object (AutoRenewingPlan)
  },
  "prepaidPlan": {
    object (PrepaidPlan)
  }
  // End of list of possible types for union field plan_type.
  "offerDetails": {
    object (OfferDetails)
  },

  // Union field deferred_item_change can be only one of the following:
  "deferredItemReplacement": {
    object (DeferredItemReplacement)
  }
  // End of list of possible types for union field deferred_item_change.
  "signupPromotion": {
    object (SignupPromotion)
  }
}
Champs
productId

string

ID du produit acheté (par exemple, "mensuel001").

expiryTime

string (Timestamp format)

Date à laquelle l'abonnement a expiré ou expirera, sauf si l'accès est étendu (par exemple, en cas de renouvellement).

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

Champ d'union plan_type. Type d'abonnement. plan_type ne peut être qu'un des éléments suivants :
autoRenewingPlan

object (AutoRenewingPlan)

L'article est renouvelé automatiquement.

prepaidPlan

object (PrepaidPlan)

L'article est prépayé.

offerDetails

object (OfferDetails)

Détails de l'offre pour cet article.

Champ d'union deferred_item_change. Le champ est présent lorsqu'un élément a un changement différé. Il peut être supprimé ou remplacé. deferred_item_change ne peut être qu'un des éléments suivants :
deferredItemReplacement

object (DeferredItemReplacement)

Informations sur le remplacement différé d'un article.

signupPromotion

object (SignupPromotion)

Informations sur la promotion concernant cet article. Ne sera défini que si une promotion a été appliquée lors de l'inscription.

AutoRenewingPlan

Informations sur un forfait à renouvellement automatique.

Représentation JSON
{
  "autoRenewEnabled": boolean,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  }
}
Champs
autoRenewEnabled

boolean

Si l'abonnement est actuellement défini sur le renouvellement automatique (par exemple, si l'utilisateur ne l'a pas résilié)

recurringPrice

object (Money)

Prix récurrent actuel du forfait à renouvellement automatique.

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

Informations sur le dernier changement de prix de l'article depuis l'inscription à l'abonnement.

installmentDetails

object (InstallmentPlan)

Engagement lié au forfait en plusieurs versements et informations sur l'état du forfait à renouvellement automatique.

SubscriptionItemPriceChangeDetails

Informations sur la modification du prix d'un article d'abonnement.

Représentation JSON
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
Champs
newPrice

object (Money)

Nouveau prix récurrent de l'élément de l'abonnement.

priceChangeMode

enum (PriceChangeMode)

Le mode de changement de prix spécifie comment le prix de l'élément de l'abonnement change.

priceChangeState

enum (PriceChangeState)

Indiquez l'état actuel de la modification de prix.

expectedNewPriceChargeTime

string (Timestamp format)

Date de renouvellement à laquelle le changement de prix prendra effet pour l'utilisateur. Cette date peut changer (à une date ultérieure) en cas de modification de la date de renouvellement (par exemple, en cas de suspension). Ce champ n'est renseigné que si le changement de prix n'a pas pris effet.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

PriceChangeMode

Mode de modification du prix.

Enums
PRICE_CHANGE_MODE_UNSPECIFIED Mode de modification du prix non spécifié. Cette valeur ne doit jamais être définie.
PRICE_DECREASE Si le prix de l'abonnement diminue.
PRICE_INCREASE Si le prix de l'abonnement augmente et que l'utilisateur doit l'accepter.
OPT_OUT_PRICE_INCREASE Si le prix de l'abonnement augmente avec le mode d'opposition

PriceChangeState

État du changement de prix.

Enums
PRICE_CHANGE_STATE_UNSPECIFIED État de la modification de prix non spécifié. Cette valeur ne doit pas être utilisée.
OUTSTANDING En attente de l'acceptation du changement de prix par l'utilisateur.
CONFIRMED Le changement de prix est confirmé pour l'utilisateur.
APPLIED Le changement de prix est appliqué, c'est-à-dire que le nouveau prix est facturé à l'utilisateur.

InstallmentPlan

Informations sur un plan de paiement échelonné.

Représentation JSON
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
Champs
initialCommittedPaymentsCount

integer

Nombre total de paiements pour lesquels l'utilisateur s'est initialement engagé.

subsequentCommittedPaymentsCount

integer

Nombre total de paiements pour lesquels l'utilisateur s'engage après chaque période d'engagement. Si le champ est vide, le forfait en plusieurs versements sera remplacé par un abonnement normal avec renouvellement automatique après l'engagement initial.

remainingCommittedPaymentsCount

integer

Nombre total de paiements engagés restants à payer au cours de ce cycle de renouvellement.

pendingCancellation

object (PendingCancellation)

Si ce champ est défini, l'annulation de ce plan de versements est en attente. La résiliation ne sera effective qu'une fois que l'utilisateur aura effectué tous les paiements engagés.

PendingCancellation

Ce type ne comporte aucun champ.

Indique si une résiliation est en attente pour le plan de versements virtuel. La résiliation ne sera effective qu'une fois que l'utilisateur aura effectué tous les paiements engagés.

PrepaidPlan

Informations sur un forfait prépayé

Représentation JSON
{
  "allowExtendAfterTime": string
}
Champs
allowExtendAfterTime

string (Timestamp format)

Si cette valeur est présente, elle indique le délai au bout duquel les achats de crédit sont autorisés pour le forfait prépayé. Ne s'affiche pas pour les forfaits prépayés expirés.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

OfferDetails

Informations sur les détails de l'offre associées à un élément de campagne d'achat.

Représentation JSON
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
Champs
offerTags[]

string

Dernières balises d'offre associées à l'offre. Il inclut les tags hérités du forfait de base.

basePlanId

string

ID du forfait de base. Présent pour tous les forfaits de base et offres.

offerId

string

ID de l'offre. Présent uniquement pour les offres avec remise.

DeferredItemReplacement

Informations sur le remplacement différé d'un article.

Représentation JSON
{
  "productId": string
}
Champs
productId

string

L'ID produit qui remplacera l'ID produit existant.

SignupPromotion

Promotion appliquée à cet article lors de son achat.

Représentation JSON
{

  // Union field promotion_type can be only one of the following:
  "oneTimeCode": {
    object (OneTimeCode)
  },
  "vanityCode": {
    object (VanityCode)
  }
  // End of list of possible types for union field promotion_type.
}
Champs
Champ d'union promotion_type. Type de promotion appliqué à l'article. promotion_type ne peut être qu'un des éléments suivants :
oneTimeCode

object (OneTimeCode)

Un code unique a été appliqué.

vanityCode

object (VanityCode)

Un code vanity a été appliqué.

OneTimeCode

Ce type ne comporte aucun champ.

Code promotionnel à usage unique.

VanityCode

Code promotionnel prédéfini à usage multiple.

Représentation JSON
{
  "promotionCode": string
}
Champs
promotionCode

string

Code promotionnel.

Méthodes

get

Obtenir les métadonnées d'un abonnement

revoke

Révoquez un achat d'abonnement pour l'utilisateur.