REST Resource: purchases.subscriptionsv2

Ресурс: SubscriptionPurchaseV2

Указывает статус покупки подписки пользователя.

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)
  }
}
Поля
kind

string

Этот тип представляет объект SubscriptionPurchaseV2 в службе androidpublisher.

region Code

string

Код страны/региона выставления счетов пользователя ISO 3166-1 Alpha-2 на момент предоставления подписки.

line Items[]

object ( SubscriptionPurchaseLineItem )

Информация на уровне элемента для покупки подписки. Все товары в одной покупке должны быть либо все с AutoRenewingPlan, либо все с PrepaidPlan.

start Time

string ( Timestamp format)

Время предоставления подписки. Не настроено для ожидающих подписок (подписка создана, но ожидает оплаты во время регистрации).

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

subscription State

enum ( SubscriptionState )

Текущее состояние подписки.

latest Order Id

string

Идентификатор последнего заказа, связанного с покупкой подписки. Для подписки с автоматическим продлением это идентификатор заказа на регистрацию, если он еще не продлен, или идентификатор последнего повторяющегося заказа (успешный, ожидающий или отклоненный заказ). Для предоплаченной подписки это идентификатор заказа, связанный с запрошенным токеном покупки.

linked Purchase Token

string

Токен покупки старой подписки, если эта подписка является одной из следующих: * Повторная регистрация отмененной, но не истекшей подписки * Обновление/понижение предыдущей подписки. * Переход с предоплаченной подписки на автоматическое продление. * Преобразование подписки с автоматическим продлением на предоплаченную. * Пополните предоплаченную подписку.

paused State Context

object ( PausedStateContext )

Дополнительный контекст приостановленных подписок. Присутствует только в том случае, если подписка в настоящее время имеет свойство subscribeState SUBSCRIPTION_STATE_PAUSED.

canceled State Context

object ( CanceledStateContext )

Дополнительный контекст отмененных подписок. Присутствует только в том случае, если подписка в настоящее время имеет состояние подписки SUBSCRIPTION_STATE_CANCELED или SUBSCRIPTION_STATE_EXPIRED.

test Purchase

object ( TestPurchase )

Присутствует только в том случае, если эта покупка подписки является тестовой.

acknowledgement State

enum ( AcknowledgementState )

Состояние подтверждения подписки.

external Account Identifiers

object ( ExternalAccountIdentifiers )

Идентификатор учетной записи пользователя в стороннем сервисе.

subscribe With Google Info

object ( SubscribeWithGoogleInfo )

Профиль пользователя, связанный с покупками, совершенными с помощью «Подписки через Google».

Состояние подписки

Потенциальные состояния, в которых может находиться подписка, например, активна она или отменена. В рамках покупки подписки могут быть включены либо все планы автоматического продления, либо планы с предоплатой.

Перечисления
SUBSCRIPTION_STATE_UNSPECIFIED Неопределенное состояние подписки.
SUBSCRIPTION_STATE_PENDING Подписка создана, но ожидает оплаты во время регистрации. В этом состоянии все товары ожидают оплаты.
SUBSCRIPTION_STATE_ACTIVE Подписка активна. - (1) Если подписка представляет собой план автоматического продления, по крайней мере один элемент имеет статус autoRenewEnabled и срок его действия не истек. - (2) Если подписка представляет собой план с предоплатой, срок действия хотя бы одного элемента не истек.
SUBSCRIPTION_STATE_PAUSED Подписка приостановлена. Состояние доступно только в том случае, если подписка является планом автоматического продления. В этом состоянии все элементы находятся в состоянии паузы.
SUBSCRIPTION_STATE_IN_GRACE_PERIOD Подписка находится в льготном периоде. Состояние доступно только в том случае, если подписка является планом автоматического продления. В этом состоянии все элементы находятся в льготном периоде.
SUBSCRIPTION_STATE_ON_HOLD Подписка приостановлена ​​(приостановлена). Состояние доступно только в том случае, если подписка является планом автоматического продления. В этом состоянии все элементы приостановлены.
SUBSCRIPTION_STATE_CANCELED Подписка отменена, но срок ее действия еще не истек. Состояние доступно только в том случае, если подписка является планом автоматического продления. Для всех элементов параметру autoRenewEnabled присвоено значение false.
SUBSCRIPTION_STATE_EXPIRED Срок подписки истек. Все элементы имеют истекшее время в прошлом.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED Ожидающая транзакция по подписке отменена. Если эта ожидающая покупка была для существующей подписки, используйте linkedPurchaseToken, чтобы получить текущее состояние этой подписки.

Пауседстатеконтекст

Информация, относящаяся к подписке в приостановленном состоянии.

JSON-представление
{
  "autoResumeTime": string
}
Поля
auto Resume Time

string ( Timestamp format)

Время, когда подписка будет автоматически возобновлена.

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

Канцеледстатеконтекст

Информация, относящаяся к подписке в состоянии SUBSCRIPTION_STATE_CANCELED или SUBSCRIPTION_STATE_EXPIRED.

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.
}
Поля
Поле объединения cancellation_reason . Причина отмены подписки. cancellation_reason может быть только одним из следующих:
user Initiated Cancellation

object ( UserInitiatedCancellation )

Подписка отменена пользователем.

system Initiated Cancellation

object ( SystemInitiatedCancellation )

Подписка была отменена системой, например, из-за проблемы с выставлением счетов.

developer Initiated Cancellation

object ( DeveloperInitiatedCancellation )

Подписка отменена разработчиком.

replacement Cancellation

object ( ReplacementCancellation )

Подписка заменена на новую.

UserInitiatedCancellation

Информация, относящаяся к отменам, инициированным пользователями.

JSON-представление
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
Поля
cancel Survey Result

object ( CancelSurveyResult )

Информация, предоставляемая пользователем при завершении процесса отмены подписки (опрос причины отмены).

cancel Time

string ( Timestamp format)

Время, когда подписка была отменена пользователем. По истечении этого времени у пользователя может остаться доступ к подписке. Используйте lineItems.expiry_time, чтобы определить, есть ли у пользователя доступ.

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

ОтменаОпросРезультат

Результат опроса об отмене, когда подписка была отменена пользователем.

JSON-представление
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
Поля
reason

enum ( CancelSurveyReason )

Причина, которую пользователь выбрал в опросе об отмене.

reason User Input

string

Установлено только для CANCEL_SURVEY_REASON_OTHERS. Это произвольный ответ пользователя на опрос.

ОтменаОпросПричина

Причина, которую пользователь выбрал в опросе об отмене.

Перечисления
CANCEL_SURVEY_REASON_UNSPECIFIED Неизвестная причина отмены опроса.
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE Недостаточное использование подписки.
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES Технические проблемы при использовании приложения.
CANCEL_SURVEY_REASON_FOUND_BETTER_APP Пользователь нашел лучшее приложение.
CANCEL_SURVEY_REASON_OTHERS Другие причины.

SystemInitiatedCancellation

Этот тип не имеет полей.

Информация, относящаяся к отменам, инициированным системой Google.

РазработчикInitiatedCancellation

Этот тип не имеет полей.

Информация, относящаяся к отменам, инициированным разработчиками.

ЗаменаОтмена

Этот тип не имеет полей.

Информация, относящаяся к отменам, вызванным заменой подписки.

Тестовая покупка

Этот тип не имеет полей.

Является ли эта покупка подписки тестовой покупкой.

Состояние подтверждения

Возможные подтверждения о подписке.

Перечисления
ACKNOWLEDGEMENT_STATE_UNSPECIFIED Неопределенное состояние подтверждения.
ACKNOWLEDGEMENT_STATE_PENDING Подписка еще не подтверждена.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED Подписка подтверждена.

Внешние идентификаторы аккаунта

Идентификатор учетной записи пользователя в стороннем сервисе.

JSON-представление
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Поля
external Account Id

string

Идентификатор учетной записи пользователя в стороннем сервисе. Отображается только в том случае, если привязка учетной записи произошла в рамках процесса покупки подписки.

obfuscated External Account Id

string

Запутанная версия идентификатора, которая однозначно связана с учетной записью пользователя в вашем приложении. Присутствует для следующих покупок: * Если привязка учетной записи произошла в рамках процесса покупки подписки. * Он был указан с помощью https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid при совершении покупки.

obfuscated External Profile Id

string

Запутанная версия идентификатора, которая однозначно связана с профилем пользователя в вашем приложении. Присутствует только в том случае, если указано с помощью https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid при совершении покупки.

Подписаться с помощью GoogleInfo

Информация, связанная с покупками, совершенными с помощью «Подписки через Google».

JSON-представление
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
Поля
profile Id

string

Идентификатор профиля Google пользователя на момент приобретения подписки.

profile Name

string

Имя профиля пользователя на момент приобретения подписки.

email Address

string

Адрес электронной почты пользователя на момент приобретения подписки.

given Name

string

Имя пользователя, данное при покупке подписки.

family Name

string

Фамилия пользователя на момент приобретения подписки.

ПодпискаПокупкаЛинияЭлемент

Информация на уровне элемента для покупки подписки.

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)
  }
}
Поля
product Id

string

Идентификатор приобретенного продукта (например, «Monthly001»).

expiry Time

string ( Timestamp format)

Время, когда подписка истекла или истечет, если доступ не будет продлен (например, продлен).

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

Поле объединения plan_type . Тип плана подписки. plan_type может быть только одним из следующих:
auto Renewing Plan

object ( AutoRenewingPlan )

Товар обновляется автоматически.

prepaid Plan

object ( PrepaidPlan )

Товар по предоплате.

offer Details

object ( OfferDetails )

Подробности предложения для этого товара.

Поле объединения deferred_item_change . Поле присутствует, когда элемент имеет отложенное изменение. Его можно либо удалить, либо заменить. deferred_item_change может быть только одним из следующих:
deferred Item Replacement

object ( DeferredItemReplacement )

Информация об отсроченной замене товара.

signup Promotion

object ( SignupPromotion )

Подробности акции по этому товару. Устанавливается только в том случае, если при регистрации применялась акция.

План автоматического обновления

Информация, касающаяся плана автоматического продления.

JSON-представление
{
  "autoRenewEnabled": boolean,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  }
}
Поля
auto Renew Enabled

boolean

Если подписка в настоящее время настроена на автоматическое продление, например, пользователь не отменил подписку.

recurring Price

object ( Money )

Текущая повторяющаяся цена плана автоматического продления.

price Change Details

object ( SubscriptionItemPriceChangeDetails )

Информация о последнем изменении цены товара с момента оформления подписки.

installment Details

object ( InstallmentPlan )

Обязательства по рассрочке и информация о состоянии для плана автоматического продления.

ПодпискаПредметЦенаИзменитьПодробнее

Информация, связанная с изменением цены элемента подписки.

JSON-представление
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
Поля
new Price

object ( Money )

Новая повторяющаяся цена для элемента подписки.

price Change Mode

enum ( PriceChangeMode )

Режим изменения цены определяет, как будет меняться цена элемента подписки.

price Change State

enum ( PriceChangeState )

Укажите, в настоящее время происходит изменение цен.

expected New Price Charge Time

string ( Timestamp format)

Время продления, после которого изменение цены вступит в силу для пользователя. Это может быть изменено (на будущее время) в связи со случаями, когда время обновления сдвигается, как пауза. Это поле заполняется только в том случае, если изменение цены не вступило в силу.

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

Режим изменения цены

Режим изменения цены.

Перечисления
PRICE_CHANGE_MODE_UNSPECIFIED Режим изменения цены не указан. Это значение никогда не должно устанавливаться.
PRICE_DECREASE Если цена подписки снижается.
PRICE_INCREASE Если цена подписки растет и пользователю необходимо ее принять.
OPT_OUT_PRICE_INCREASE Если цена подписки увеличивается в режиме отказа.

ЦенаChangeState

Состояние изменения цены.

Перечисления
PRICE_CHANGE_STATE_UNSPECIFIED Состояние изменения цены не указано. Это значение не следует использовать.
OUTSTANDING Ожидание согласия пользователя на изменение цены.
CONFIRMED Подтверждено, что изменение цены произошло для пользователя.
APPLIED Изменение цены применяется, т. е. с пользователя начала взиматься новая цена.

Рассрочка

Информация о рассрочке.

JSON-представление
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
Поля
initial Committed Payments Count

integer

Общее количество платежей, которые пользователь изначально совершил.

subsequent Committed Payments Count

integer

Общее количество платежей, которые пользователь будет совершать после каждого периода действия обязательств. Пусто означает, что после первоначального обязательства для плана рассрочки будет использована обычная подписка с автоматическим продлением.

remaining Committed Payments Count

integer

Общее количество подтвержденных платежей, которые осталось оплатить в этом цикле продления.

pending Cancellation

object ( PendingCancellation )

Если этот план рассрочки присутствует, он ожидает отмены. Отмена произойдет только после того, как пользователь завершит все совершенные платежи.

Ожидание отмены

Этот тип не имеет полей.

Это индикатор того, есть ли ожидающая аннулирования виртуальной рассрочки. Отмена произойдет только после того, как пользователь завершит все совершенные платежи.

Предоплаченный план

Информация, относящаяся к предоплаченному плану.

JSON-представление
{
  "allowExtendAfterTime": string
}
Поля
allow Extend After Time

string ( Timestamp format)

Если этот параметр присутствует, это время, по истечении которого для предоплаченного плана разрешены пополнения счета. Не будет присутствовать для предоплаченных планов с истекшим сроком действия.

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

ПредложениеПодробнее

Подробная информация о предложении, связанная с позицией покупки.

JSON-представление
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
Поля
offer Tags[]

string

Теги последних предложений, связанные с предложением. Он включает в себя теги, унаследованные от базового плана.

base Plan Id

string

Идентификатор базового плана. Присутствует для всех базовых планов и предложений.

offer Id

string

Идентификатор предложения. Присутствует только для предложений со скидкой.

Отложенный элементзамене

Информация, касающаяся отсроченной замены товара.

JSON-представление
{
  "productId": string
}
Поля
product Id

string

ProductId заменит существующий ProductId.

РегистрацияПродвижение

Акция распространяется на этот товар при покупке.

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.
}
Поля
Поле объединения promotion_type . Тип рекламной акции, примененной к товару. promotion_type может быть только одним из следующих:
one Time Code

object ( OneTimeCode )

Был применен одноразовый код.

vanity Code

object ( VanityCode )

Был применен тщеславный код.

OneTimeCode

Этот тип не имеет полей.

Одноразовый промокод.

VanityCode

Предопределенный промокод многократного использования.

JSON-представление
{
  "promotionCode": string
}
Поля
promotion Code

string

Промокод.

Методы

get

Получить метаданные о подписке

revoke

Отменить покупку подписки для пользователя.