- Ressource : SubscriptionPurchaseV2
- SubscriptionState
- PausedStateContext
- CanceledStateContext
- UserInitiatedCancellation
- CancelSurveyResult
- CancelSurveyReason
- SystemInitiatedCancellation
- DeveloperInitiatedCancellation
- ReplacementCancellation
- TestPurchase
- AcknowledgementState
- ExternalAccountIdentifiers
- SubscribeWithGoogleInfo
- SubscriptionPurchaseLineItem
- AutoRenewingPlan
- SubscriptionItemPriceChangeDetails
- PriceChangeMode
- PriceChangeState
- InstallmentPlan
- PendingCancellation
- PriceStepUpConsentDetails
- ConsentState
- PrepaidPlan
- OfferDetails
- DeferredItemReplacement
- DeferredItemRemoval
- SignupPromotion
- OneTimeCode
- VanityCode
- ItemReplacement
- ReplacementMode
- OfferPhase
- ProrationPeriodOfferPhase
- OriginalOfferPhaseType
- FreeTrialOfferPhase
- IntroductoryPriceOfferPhase
- BasePriceOfferPhase
- OutOfAppPurchaseContext
- OnHoldStateContext
- RenewalDeclinedContext
- InGracePeriodStateContext
- Méthodes
Ressource : SubscriptionPurchaseV2
Indique l'état de l'achat d'abonnement d'un utilisateur.
| Représentation JSON |
|---|
{ "kind": string, "regionCode": string, "lineItems": [ { object ( |
| Champs | |
|---|---|
kind |
Ce type représente un objet SubscriptionPurchaseV2 dans le service androidpublisher. |
regionCode |
Code pays/région de facturation ISO 3166-1 alpha-2 de l'utilisateur au moment où l'abonnement a été accordé. |
lineItems[] |
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 |
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). Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
subscriptionState |
État actuel de l'abonnement. |
linkedPurchaseToken |
Jeton d'achat de l'ancien abonnement si celui-ci correspond à l'un des cas suivants : * Réinscription à un abonnement résilié, mais non expiré * Passage à un forfait supérieur/inférieur à partir d'un abonnement précédent * Passer d'un forfait prépayé à un abonnement à renouvellement automatique * Passer d'un abonnement à renouvellement automatique à un abonnement prépayé * Recharger un abonnement prépayé. |
pausedStateContext |
Contexte supplémentaire concernant les abonnements suspendus. N'est présent que si l'abonnement a actuellement l'état SUBSCRIPTION_STATE_PAUSED. |
canceledStateContext |
Contexte supplémentaire concernant les abonnements résiliés. Uniquement présent si l'abonnement a actuellement l'état SUBSCRIPTION_STATE_CANCELED ou SUBSCRIPTION_STATE_EXPIRED. |
testPurchase |
Uniquement présent si cet achat d'abonnement est un achat test. |
acknowledgementState |
État de confirmation de réception de l'abonnement. |
externalAccountIdentifiers |
Identifiant du compte utilisateur dans le service tiers. |
subscribeWithGoogleInfo |
Profil utilisateur associé aux achats effectués avec S'abonner avec Google. |
etag |
Tag d'entité représentant l'état actuel de l'abonnement. Le développeur fournira cet etag pour les actions d'abonnement. Cet etag est toujours présent pour les abonnements à renouvellement automatique et prépayés. |
outOfAppPurchaseContext |
Contexte supplémentaire pour les achats hors application. Ces informations ne sont présentes que pour les achats de réabonnement (abonnements souscrits après l'expiration de l'abonnement précédent au même produit) effectués via le centre d'abonnement Google Play. Ce champ sera supprimé une fois que vous aurez confirmé l'abonnement. |
onHoldStateContext |
Facultatif. Informations supplémentaires sur les abonnements à l'état EN ATTENTE. N'est présent que si l'abonnement a actuellement l'état SUBSCRIPTION_STATE_ON_HOLD. |
inGracePeriodStateContext |
Facultatif. Contexte supplémentaire concernant les abonnements à l'état IN_GRACE_PERIOD. N'est présent que si l'abonnement est actuellement dans l'état SUBSCRIPTION_STATE_IN_GRACE_PERIOD. |
SubscriptionState
États potentiels d'un abonnement (par exemple, actif ou résilié). Les éléments d'un achat d'abonnement peuvent être des forfaits à renouvellement automatique ou des forfaits prépayés.
| Enums | |
|---|---|
SUBSCRIPTION_STATE_UNSPECIFIED |
État d'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 élément n'a pas expiré. |
SUBSCRIPTION_STATE_PAUSED |
Votre abonnement est suspendu. L'état n'est disponible que lorsque l'abonnement est un forfait à renouvellement automatique. Dans cet état, tous les éléments sont en veille. |
SUBSCRIPTION_STATE_IN_GRACE_PERIOD |
L'abonnement est en période de grâce. L'état n'est disponible que lorsque l'abonnement est un forfait à renouvellement automatique. Dans cet état, tous les éléments sont en période de grâce. |
SUBSCRIPTION_STATE_ON_HOLD |
L'abonnement est en attente (suspendu). L'état n'est disponible que lorsque l'abonnement est un forfait à renouvellement automatique. Dans cet état, tous les éléments sont en attente. |
SUBSCRIPTION_STATE_CANCELED |
L'abonnement a été résilié, mais n'a pas encore expiré. L'état n'est disponible que lorsque l'abonnement est un forfait à renouvellement automatique. La valeur de autoRenewEnabled est définie sur "false" pour tous les éléments. |
SUBSCRIPTION_STATE_EXPIRED |
L'abonnement a expiré. Tous les éléments ont une valeur "expiryTime" dans le passé. |
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED |
La transaction en attente pour l'abonnement a été 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 mis en veille.
| Représentation JSON |
|---|
{ "autoResumeTime": string } |
| Champs | |
|---|---|
autoResumeTime |
Heure à laquelle l'abonnement sera automatiquement réactivé. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
CanceledStateContext
Informations spécifiques à un abonnement à l'état SUBSCRIPTION_STATE_CANCELED ou SUBSCRIPTION_STATE_EXPIRED.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union cancellation_reason. Raison pour laquelle un abonnement a été résilié. cancellation_reason ne peut être qu'un des éléments suivants : |
|
userInitiatedCancellation |
L'abonnement a été résilié par l'utilisateur. |
systemInitiatedCancellation |
L'abonnement a été résilié par le système, par exemple en raison d'un problème de facturation. |
developerInitiatedCancellation |
L'abonnement a été résilié par le développeur. |
replacementCancellation |
L'abonnement a été remplacé par un nouvel abonnement. |
UserInitiatedCancellation
Informations spécifiques aux résiliations initiées par les utilisateurs.
| Représentation JSON |
|---|
{
"cancelSurveyResult": {
object ( |
| Champs | |
|---|---|
cancelSurveyResult |
Informations fournies par l'utilisateur lorsqu'il termine le processus de résiliation de l'abonnement (enquête sur le motif de l'annulation). |
cancelTime |
Heure à laquelle l'abonnement a été résilié par l'utilisateur. Il est possible que l'utilisateur ait encore accès à l'abonnement après cette date. Utilisez lineItems.expiry_time pour déterminer si un utilisateur a toujours accès. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
CancelSurveyResult
Résultat de l'enquête sur la résiliation lorsque l'abonnement a été résilié par l'utilisateur.
| Représentation JSON |
|---|
{
"reason": enum ( |
| Champs | |
|---|---|
reason |
Raison sélectionnée par l'utilisateur dans l'enquête sur la résiliation. |
reasonUserInput |
Défini uniquement pour CANCEL_SURVEY_REASON_OTHERS. Il s'agit de la réponse en texte libre de l'utilisateur à l'enquête. |
CancelSurveyReason
Raison sélectionnée par l'utilisateur dans l'enquête sur la résiliation.
| Enums | |
|---|---|
CANCEL_SURVEY_REASON_UNSPECIFIED |
Motif de l'annulation de l'étude non spécifié. |
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE |
L'abonnement n'a pas été suffisamment utilisé. |
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES |
Problèmes techniques lors de l'utilisation de l'application. |
CANCEL_SURVEY_REASON_COST_RELATED |
Problèmes liés aux coûts. |
CANCEL_SURVEY_REASON_FOUND_BETTER_APP |
L'utilisateur a trouvé une meilleure application. |
CANCEL_SURVEY_REASON_OTHERS |
Autre motif. |
SystemInitiatedCancellation
Ce type ne comporte aucun champ.
Informations spécifiques aux résiliations initiées par le système Google.
DeveloperInitiatedCancellation
Ce type ne comporte aucun champ.
Informations spécifiques aux résiliations initiées par les développeurs.
ReplacementCancellation
Ce type ne comporte aucun champ.
Informations spécifiques aux résiliations causées par le 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'accusé de réception 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 |
Identifiant du compte utilisateur dans le service tiers. Présent uniquement si l'association de compte a eu lieu lors du parcours d'achat de l'abonnement. |
obfuscatedExternalAccountId |
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 |
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 est spécifié à 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 |
ID du profil Google de l'utilisateur lors de la souscription de l'abonnement. |
profileName |
Nom du profil de l'utilisateur au moment de la souscription de l'abonnement. |
emailAddress |
Adresse e-mail de l'utilisateur au moment de la souscription de l'abonnement. |
givenName |
Prénom de l'utilisateur lors de la souscription de l'abonnement. |
familyName |
Nom de famille de l'utilisateur au moment de la souscription de l'abonnement. |
SubscriptionPurchaseLineItem
Informations au niveau de l'article pour un achat d'abonnement.
| Représentation JSON |
|---|
{ "productId": string, "expiryTime": string, "latestSuccessfulOrderId": string, // Union field |
| Champs | |
|---|---|
productId |
ID du produit acheté (par exemple, "mensuel001"). |
expiryTime |
Heure à laquelle l'abonnement a expiré ou expirera, sauf si l'accès est prolongé (par exemple, en cas de renouvellement). Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
latestSuccessfulOrderId |
ID de la dernière commande réussie associée à cet article. Absent si l'utilisateur ne possède pas encore l'article (par exemple, l'article remplacé par un report). |
Champ d'union plan_type. Type d'abonnement. plan_type ne peut être qu'un des éléments suivants : |
|
autoRenewingPlan |
L'article est renouvelé automatiquement. |
prepaidPlan |
L'article est prépayé. |
offerDetails |
Détails de l'offre pour cet article. |
Champ d'union deferred_item_change. Ce champ s'affiche lorsqu'un élément a une modification différée. Vous pouvez la supprimer ou la remplacer. deferred_item_change ne peut être qu'un des éléments suivants : |
|
deferredItemReplacement |
Informations sur le remplacement différé d'articles. |
deferredItemRemoval |
Informations sur la suppression différée d'un élément. |
signupPromotion |
Détails de la promotion concernant cet article. Défini uniquement si une promotion a été appliquée lors de l'inscription. |
itemReplacement |
Détails de l'élément remplacé. Ce champ n'est renseigné que si cet article a remplacé un autre article dans un abonnement précédent. Il n'est disponible que 60 jours après la date d'achat. |
offerPhase |
Détails de la phase d'offre actuelle pour cet article. |
AutoRenewingPlan
Informations concernant un forfait à renouvellement automatique.
| Représentation JSON |
|---|
{ "autoRenewEnabled": boolean, "recurringPrice": { object ( |
| Champs | |
|---|---|
autoRenewEnabled |
Si l'abonnement est actuellement configuré pour le renouvellement automatique (par exemple, si l'utilisateur n'a pas résilié l'abonnement) |
recurringPrice |
Prix récurrent actuel du forfait à renouvellement automatique. Notez que le prix ne tient pas compte des remises et n'inclut pas les taxes. Pour les prix hors taxes, veuillez appeler l'API |
priceChangeDetails |
Informations sur la dernière modification du prix de l'article depuis l'inscription à l'abonnement. |
installmentDetails |
Informations sur l'engagement et l'état du forfait à renouvellement automatique avec paiement échelonné. |
priceStepUpConsentDetails |
Informations sur le consentement le plus récent concernant une augmentation de prix. |
SubscriptionItemPriceChangeDetails
Informations sur le changement de prix d'un élément d'abonnement.
| Représentation JSON |
|---|
{ "newPrice": { object ( |
| Champs | |
|---|---|
newPrice |
Nouveau prix récurrent de l'article d'abonnement. |
priceChangeMode |
Le mode de changement de prix indique comment le prix de l'article d'abonnement évolue. |
priceChangeState |
Indiquez l'état actuel de la modification du prix. |
expectedNewPriceChargeTime |
Heure de renouvellement à laquelle le changement de prix prendra effet pour l'utilisateur. Cette date est susceptible d'être modifiée(à une date ultérieure) dans les cas où la date de renouvellement est décalée, par exemple en cas de suspension. Ce champ n'est renseigné que si le changement de prix n'a pas pris effet. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
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 expresse. |
PriceChangeState
État du changement de prix.
| Enums | |
|---|---|
PRICE_CHANGE_STATE_UNSPECIFIED |
État de la modification du prix non spécifié. Cette valeur ne doit pas être utilisée. |
OUTSTANDING |
En attente de l'accord de l'utilisateur pour le changement de prix. |
CONFIRMED |
Le changement de prix est confirmé pour l'utilisateur. |
APPLIED |
Le changement de prix est appliqué, c'est-à-dire que le nouvel abonnement est facturé à l'utilisateur. |
CANCELED |
La modification du prix a été annulée. |
InstallmentPlan
Informations sur un paiement échelonné.
| Représentation JSON |
|---|
{
"initialCommittedPaymentsCount": integer,
"subsequentCommittedPaymentsCount": integer,
"remainingCommittedPaymentsCount": integer,
"pendingCancellation": {
object ( |
| Champs | |
|---|---|
initialCommittedPaymentsCount |
Nombre total de paiements pour lesquels l'utilisateur s'est initialement engagé. |
subsequentCommittedPaymentsCount |
Nombre total de paiements auxquels l'utilisateur s'engage après chaque période d'engagement. Si la valeur est vide, le forfait à paiements échelonnés reviendra à un abonnement à renouvellement automatique normal après l'engagement initial. |
remainingCommittedPaymentsCount |
Nombre total de paiements engagés restant à payer pour ce cycle de renouvellement. |
pendingCancellation |
Si ce forfait est présent, cela signifie qu'il est en attente de résiliation. La résiliation ne sera effective qu'une fois que l'utilisateur aura effectué tous les paiements dus. |
PendingCancellation
Ce type ne comporte aucun champ.
Indique si une résiliation est en attente pour le forfait virtuel à paiements échelonnés. La résiliation ne sera effective qu'une fois que l'utilisateur aura effectué tous les paiements dus.
PriceStepUpConsentDetails
Informations liées à une augmentation de prix nécessitant le consentement utilisateur.
| Représentation JSON |
|---|
{ "state": enum ( |
| Champs | |
|---|---|
state |
Uniquement en sortie. État du consentement à l'augmentation du prix. |
consentDeadlineTime |
Date limite à laquelle l'utilisateur doit donner son consentement. Si vous ne donnez pas votre consentement d'ici là, l'abonnement sera résilié. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
newPrice |
Le nouveau prix, qui nécessite le consentement utilisateur. |
ConsentState
État du consentement à l'augmentation du prix.
| Enums | |
|---|---|
CONSENT_STATE_UNSPECIFIED |
État du consentement non spécifié. |
PENDING |
L'utilisateur n'a pas encore donné son consentement. |
CONFIRMED |
L'utilisateur a donné son accord et le nouveau prix est en attente d'application. |
COMPLETED |
L'utilisateur a donné son accord et le nouveau prix est entré en vigueur. |
PrepaidPlan
Informations relatives à un forfait prépayé.
| Représentation JSON |
|---|
{ "allowExtendAfterTime": string } |
| Champs | |
|---|---|
allowExtendAfterTime |
Si cette valeur est présente, il s'agit du délai après lequel 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. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
OfferDetails
Informations sur les détails de l'offre concernant un article d'achat.
| Représentation JSON |
|---|
{ "offerTags": [ string ], "basePlanId": string, "offerId": string } |
| Champs | |
|---|---|
offerTags[] |
Les derniers tags d'offre associés à l'offre. Il inclut les tags hérités du forfait de base. |
basePlanId |
ID du forfait de base. Présent pour tous les forfaits de base et toutes les offres. |
offerId |
ID d'offre. (présent uniquement pour les offres à prix réduit) |
DeferredItemReplacement
Informations sur le remplacement différé d'un article.
| Représentation JSON |
|---|
{ "productId": string } |
| Champs | |
|---|---|
productId |
ID du produit qui va remplacer l'ID existant. |
DeferredItemRemoval
Ce type ne comporte aucun champ.
Informations sur le remplacement différé d'un article.
SignupPromotion
Promotion appliquée à cet article lors de l'achat.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union promotion_type. Type de promotion appliqué à l'article. promotion_type ne peut être qu'un des éléments suivants : |
|
oneTimeCode |
Un code à usage unique a été appliqué. |
vanityCode |
Un code personnalisé a été appliqué. |
OneTimeCode
Ce type ne comporte aucun champ.
Code promotionnel à usage unique.
VanityCode
Code promotionnel prédéfini à usages multiples.
| Représentation JSON |
|---|
{ "promotionCode": string } |
| Champs | |
|---|---|
promotionCode |
Code promotionnel |
ItemReplacement
Détails sur un élément de ligne d'abonnement qui est remplacé.
| Représentation JSON |
|---|
{
"productId": string,
"replacementMode": enum ( |
| Champs | |
|---|---|
productId |
ID du produit de l'élément de ligne d'abonnement remplacé. |
replacementMode |
Mode de remplacement appliqué lors de l'achat. |
basePlanId |
ID du forfait de base de l'élément de ligne d'abonnement remplacé. |
offerId |
ID d'offre de l'élément de campagne d'abonnement remplacé, le cas échéant. |
ReplacementMode
Mode de remplacement d'un abonnement.
| Enums | |
|---|---|
REPLACEMENT_MODE_UNSPECIFIED |
Mode de remplacement non spécifié. |
WITH_TIME_PRORATION |
Le nouveau forfait sera calculé au prorata et crédité à partir de l'ancien forfait. |
CHARGE_PRORATED_PRICE |
Un prix au prorata sera facturé à l'utilisateur pour le nouveau forfait. |
WITHOUT_PRORATION |
Le nouveau forfait remplacera l'ancien sans proratiser le temps. |
CHARGE_FULL_PRICE |
Le montant total du nouveau forfait sera facturé à l'utilisateur. |
DEFERRED |
L'ancien forfait sera résilié et le nouveau prendra effet à l'expiration de l'ancien. |
KEEP_EXISTING |
Le forfait restera inchangé avec ce remplacement. |
OfferPhase
Détails sur la phase de l'offre.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union offer_phase. Détails de la phase de l'offre. offer_phase ne peut être qu'un des éléments suivants : |
|
prorationPeriod |
Définissez cette valeur lorsque la phase d'offre est une période de prorata. |
freeTrial |
Défini lorsque la phase de l'offre est un essai sans frais. |
introductoryPrice |
Définissez la phase de l'offre comme une phase de prix découverte. |
basePrice |
Définissez quand la phase d'offre est une phase de tarification du forfait de base. |
ProrationPeriodOfferPhase
Détails sur la phase d'offre de la période de prorata.
| Représentation JSON |
|---|
{
"originalOfferPhaseType": enum ( |
| Champs | |
|---|---|
originalOfferPhaseType |
Type de phase de l'offre d'origine avant la période de prorata. Ne doit être défini que lorsque la période de calcul au prorata est modifiée à partir d'une phase d'offre existante. |
OriginalOfferPhaseType
Phase de l'offre d'origine du paiement de l'offre, si le paiement de l'offre est un paiement au prorata.
| Enums | |
|---|---|
ORIGINAL_OFFER_PHASE_TYPE_UNSPECIFIED |
Type de phase d'offre d'origine non spécifié. |
BASE |
L'abonnement est en phase de tarification de base (par exemple, au prix total). |
INTRODUCTORY |
L'abonnement est en phase de tarification promotionnelle. |
FREE_TRIAL |
L'abonnement est en période d'essai sans frais. |
FreeTrialOfferPhase
Ce type ne comporte aucun champ.
Détails sur la phase de l'offre d'essai sans frais.
IntroductoryPriceOfferPhase
Ce type ne comporte aucun champ.
Informations sur la phase de prix découverte.
BasePriceOfferPhase
Ce type ne comporte aucun champ.
Informations sur la phase d'offre de prix de base.
OutOfAppPurchaseContext
Informations spécifiques à un achat hors application.
| Représentation JSON |
|---|
{
"expiredExternalAccountIdentifiers": {
object ( |
| Champs | |
|---|---|
expiredExternalAccountIdentifiers |
Identifiant du compte utilisateur du dernier abonnement expiré pour ce SKU. |
expiredPurchaseToken |
Jeton d'achat du dernier abonnement expiré. Ce jeton d'achat ne doit être utilisé que pour identifier l'utilisateur si le lien entre le purchaseToken et l'utilisateur est stocké dans votre base de données. Vous ne pourrez pas l'utiliser pour appeler l'API Google Developer si elle a expiré depuis plus de 60 jours. |
OnHoldStateContext
Informations supplémentaires sur les abonnements à l'état EN ATTENTE.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union on_hold_reason. Raison pour laquelle l'abonnement est à l'état ON_HOLD. on_hold_reason ne peut être qu'un des éléments suivants : |
|
renewalDeclined |
Facultatif. Le paiement du renouvellement a été refusé. |
RenewalDeclinedContext
Contexte lié au scénario de renouvellement refusé.
| Représentation JSON |
|---|
{ "pendingOrderId": string } |
| Champs | |
|---|---|
pendingOrderId |
Obligatoire. ID de la commande en attente ou ayant échoué qui est à l'origine de l'état. |
InGracePeriodStateContext
Contexte supplémentaire concernant les abonnements à l'état IN_GRACE_PERIOD.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union grace_period_reason. Raison pour laquelle l'abonnement est à l'état IN_GRACE_PERIOD. grace_period_reason ne peut être qu'un des éléments suivants : |
|
renewalDeclined |
Facultatif. Le paiement du renouvellement a été refusé. |
Méthodes |
|
|---|---|
|
Résiliez l'abonnement de l'utilisateur. |
|
Reporte le renouvellement d'un abonnement. |
|
Obtenir les métadonnées d'un abonnement |
|
Révoquez l'abonnement de l'utilisateur. |
Codes d'erreur
Les opérations de cette ressource renvoient les codes d'erreur HTTP suivants :
| Code d'erreur | Motif | Description | Solution |
|---|---|---|---|
400 / 410 |
subscriptionExpired |
L'abonnement a expiré et l'opération demandée ne peut pas être effectuée. | Vérifiez la date d'expiration de l'abonnement. Cette opération n'est pas autorisée sur les abonnements expirés. |
400 |
subscriptionInvalidArgument |
Un argument non valide a été fourni dans la demande d'abonnement. | Consultez la documentation de l'API et assurez-vous que tous les champs obligatoires sont fournis et correctement mis en forme. |
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 non valide a été fournie dans la requête. 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 |
prepaidSubscriptionNotSupported |
L'opération demandée n'est pas disponible pour les abonnements prépayés. | Assurez-vous que l'opération s'applique au type d'abonnement. Cette erreur est spécifique aux méthodes telles que "Cancel" (Annuler). |
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 tous les détails de la demande sont corrects et correspondent les uns aux autres. |
400 |
required |
Il manque un champ ou un paramètre obligatoire dans la requête. | Consultez la documentation de l'API pour vous assurer d'inclure tous les champs et paramètres obligatoires. |
400 |
unsupportedIabType |
Cette opération n'est pas disponible pour 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 suffisantes 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, jeton d'achat, nom du package, ID du produit, 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. |
410 |
purchaseTokenNoLongerValid |
Le jeton d'achat n'est plus valide de manière permanente, car le compte utilisateur associé a été supprimé ou l'enregistrement de l'achat n'existe plus. | Cessez d'utiliser ce jeton d'achat. |
410 |
subscriptionNoLongerAvailable |
L'achat d'abonnement n'est plus disponible pour la requête, car il a expiré depuis trop longtemps. | Cette erreur indique que l'abonnement a expiré depuis plus de 60 jours. Vous ne devez plus interroger ces abonnements. |
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. Pensez à consulter le tableau de bord d'état de Play pour connaître les éventuelles pannes connues. |