- Ресурс: SubscriptionPurchaseV2
- Состояние подписки
- Паузедстатеконтекст
- Канцеледстатеконтекст
- UserInitiatedCancellation
- ОтменаОпросРезультат
- ОтменаОпросПричина
- SystemInitiatedCancellation
- РазработчикInitiatedCancellation
- ЗаменаОтмена
- Тестовая покупка
- Состояние подтверждения
- Внешние идентификаторы аккаунта
- Подписаться с помощью GoogleInfo
- ПодпискаПокупкаЛинияЭлемент
- План автоматического обновления
- ПодпискаПредметЦенаИзменитьПодробнее
- Режим изменения цены
- ЦенаChangeState
- Рассрочка
- Ожидание отмены
- Предоплаченный план
- ПредложениеПодробнее
- Отложенный элементзамене
- Методы
Ресурс: SubscriptionPurchaseV2
Указывает статус покупки подписки пользователя.
JSON-представление |
---|
{ "kind": string, "regionCode": string, "lineItems": [ { object ( |
Поля | |
---|---|
kind | Этот тип представляет объект SubscriptionPurchaseV2 в службе androidpublisher. |
regionCode | Код страны/региона выставления счетов пользователя ISO 3166-1 Alpha-2 на момент предоставления подписки. |
lineItems[] | Информация на уровне элемента для покупки подписки. Все товары в одной покупке должны быть либо все с AutoRenewingPlan, либо все с PrepaidPlan. |
startTime | Время предоставления подписки. Не настроено для ожидающих подписок (подписка создана, но ожидает оплаты во время регистрации). Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: |
subscriptionState | Текущее состояние подписки. |
latestOrderId | Идентификатор последнего заказа, связанного с покупкой подписки. Для подписки с автоматическим продлением это идентификатор заказа на регистрацию, если он еще не продлен, или идентификатор последнего повторяющегося заказа (успешный, ожидающий или отклоненный заказ). Для предоплаченной подписки это идентификатор заказа, связанный с запрошенным токеном покупки. |
linkedPurchaseToken | Токен покупки старой подписки, если эта подписка является одной из следующих: * Повторная регистрация отмененной, но не истекшей подписки * Обновление/понижение предыдущей подписки. * Переход с предоплаченной подписки на автоматическое продление. * Преобразование подписки с автоматическим продлением на предоплаченную. * Пополните предоплаченную подписку. |
pausedStateContext | Дополнительный контекст приостановленных подписок. Присутствует только в том случае, если подписка в настоящее время имеет свойство subscribeState SUBSCRIPTION_STATE_PAUSED. |
canceledStateContext | Дополнительный контекст отмененных подписок. Присутствует только в том случае, если подписка в настоящее время имеет состояние подписки SUBSCRIPTION_STATE_CANCELED или SUBSCRIPTION_STATE_EXPIRED. |
testPurchase | Присутствует только в том случае, если эта покупка подписки является тестовой. |
acknowledgementState | Состояние подтверждения подписки. |
externalAccountIdentifiers | Идентификатор учетной записи пользователя в стороннем сервисе. |
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 } |
Поля | |
---|---|
autoResumeTime | Время, когда подписка будет автоматически возобновлена. Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: |
Канцеледстатеконтекст
Информация, относящаяся к подписке в состоянии SUBSCRIPTION_STATE_CANCELED или SUBSCRIPTION_STATE_EXPIRED.
JSON-представление |
---|
{ // Union field |
Поля | |
---|---|
Поле объединения cancellation_reason . Причина отмены подписки. cancellation_reason может быть только одним из следующих: | |
userInitiatedCancellation | Подписка отменена пользователем. |
systemInitiatedCancellation | Подписка была отменена системой, например, из-за проблемы с выставлением счетов. |
developerInitiatedCancellation | Подписка отменена разработчиком. |
replacementCancellation | Подписка заменена на новую. |
UserInitiatedCancellation
Информация, относящаяся к отменам, инициированным пользователями.
JSON-представление |
---|
{
"cancelSurveyResult": {
object ( |
Поля | |
---|---|
cancelSurveyResult | Информация, предоставляемая пользователем при завершении процесса отмены подписки (опрос причины отмены). |
cancelTime | Время, когда подписка была отменена пользователем. По истечении этого времени у пользователя может остаться доступ к подписке. Используйте lineItems.expiry_time, чтобы определить, есть ли у пользователя доступ. Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: |
ОтменаОпросРезультат
Результат опроса об отмене, когда подписка была отменена пользователем.
JSON-представление |
---|
{
"reason": enum ( |
Поля | |
---|---|
reason | Причина, которую пользователь выбрал в опросе об отмене. |
reasonUserInput | Установлено только для CANCEL_SURVEY_REASON_OTHERS. Это произвольный ответ пользователя на опрос. |
ОтменаОпросПричина
Причина, которую пользователь выбрал в опросе об отмене.
Перечисления | |
---|---|
CANCEL_SURVEY_REASON_UNSPECIFIED | Неизвестная причина отмены опроса. |
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE | Недостаточное использование подписки. |
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES | Технические проблемы при использовании приложения. |
CANCEL_SURVEY_REASON_COST_RELATED | Вопросы, связанные с затратами. |
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 } |
Поля | |
---|---|
externalAccountId | Идентификатор учетной записи пользователя в стороннем сервисе. Отображается только в том случае, если привязка учетной записи произошла в рамках процесса покупки подписки. |
obfuscatedExternalAccountId | Запутанная версия идентификатора, которая однозначно связана с учетной записью пользователя в вашем приложении. Присутствует для следующих покупок: * Если привязка учетной записи произошла в рамках процесса покупки подписки. * Он был указан с помощью https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid при совершении покупки. |
obfuscatedExternalProfileId | Запутанная версия идентификатора, которая однозначно связана с профилем пользователя в вашем приложении. Присутствует только в том случае, если указано с помощью 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 } |
Поля | |
---|---|
profileId | Идентификатор профиля Google пользователя на момент приобретения подписки. |
profileName | Имя профиля пользователя на момент приобретения подписки. |
emailAddress | Адрес электронной почты пользователя на момент приобретения подписки. |
givenName | Имя пользователя при покупке подписки. |
familyName | Фамилия пользователя на момент приобретения подписки. |
ПодпискаПокупкаЛинияЭлемент
Информация на уровне элемента для покупки подписки.
JSON-представление |
---|
{ "productId": string, "expiryTime": string, // Union field |
Поля | |
---|---|
productId | Идентификатор приобретенного продукта (например, «Monthly001»). |
expiryTime | Время, когда подписка истекла или истечет, если доступ не будет продлен (например, продлен). Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: |
Поле объединения plan_type . Тип плана подписки. plan_type может быть только одним из следующих: | |
autoRenewingPlan | Товар обновляется автоматически. |
prepaidPlan | Товар по предоплате. |
offerDetails | Подробности предложения для этого товара. |
Поле объединения deferred_item_change . Поле присутствует, когда элемент имеет отложенное изменение. Его можно либо удалить, либо заменить. deferred_item_change может быть только одним из следующих: | |
deferredItemReplacement | Информация об отсроченной замене товара. |
План автоматического обновления
Информация, касающаяся плана автоматического продления.
JSON-представление |
---|
{ "autoRenewEnabled": boolean, "priceChangeDetails": { object ( |
Поля | |
---|---|
autoRenewEnabled | Если подписка в настоящее время настроена на автоматическое продление, например, пользователь не отменил подписку. |
priceChangeDetails | Информация о последнем изменении цены товара с момента оформления подписки. |
installmentDetails | Обязательства по рассрочке и информация о состоянии для плана автоматического продления. |
ПодпискаПредметЦенаИзменитьПодробнее
Информация, связанная с изменением цены элемента подписки.
JSON-представление |
---|
{ "newPrice": { object ( |
Поля | |
---|---|
newPrice | Новая повторяющаяся цена для элемента подписки. |
priceChangeMode | Режим изменения цены определяет, как будет меняться цена элемента подписки. |
priceChangeState | Укажите, в настоящее время происходит изменение цен. |
expectedNewPriceChargeTime | Время продления, после которого изменение цены вступит в силу для пользователя. Это может быть изменено (на будущее время) в связи со случаями, когда время обновления сдвигается, как пауза. Это поле заполняется только в том случае, если изменение цены не вступило в силу. Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: |
Режим изменения цены
Режим изменения цены.
Перечисления | |
---|---|
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 ( |
Поля | |
---|---|
initialCommittedPaymentsCount | Общее количество платежей, которые пользователь изначально совершил. |
subsequentCommittedPaymentsCount | Общее количество платежей, которые пользователь будет совершать после каждого периода действия обязательств. Пустое означает, что после первоначального обязательства для плана рассрочки будет использована обычная подписка с автоматическим продлением. |
remainingCommittedPaymentsCount | Общее количество подтвержденных платежей, которые осталось оплатить в этом цикле продления. |
pendingCancellation | Если этот план рассрочки присутствует, он ожидает отмены. Отмена произойдет только после того, как пользователь завершит все совершенные платежи. |
Ожидание отмены
Этот тип не имеет полей.
Это индикатор того, есть ли ожидающая аннулирования виртуальной рассрочки. Отмена произойдет только после того, как пользователь завершит все совершенные платежи.
Предоплаченный план
Информация, относящаяся к предоплаченному плану.
JSON-представление |
---|
{ "allowExtendAfterTime": string } |
Поля | |
---|---|
allowExtendAfterTime | Если этот параметр присутствует, это время, по истечении которого для предоплаченного плана разрешены пополнения счета. Не будет присутствовать для предоплаченных планов с истекшим сроком действия. Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: |
ПредложениеПодробнее
Подробная информация о предложении, связанная с позицией покупки.
JSON-представление |
---|
{ "offerTags": [ string ], "basePlanId": string, "offerId": string } |
Поля | |
---|---|
offerTags[] | Теги последних предложений, связанные с предложением. Он включает в себя теги, унаследованные от базового плана. |
basePlanId | Идентификатор базового плана. Присутствует для всех базовых планов и предложений. |
offerId | Идентификатор предложения. Присутствует только для предложений со скидкой. |
Отложенный элементзамене
Информация, касающаяся отсроченной замены товара.
JSON-представление |
---|
{ "productId": string } |
Поля | |
---|---|
productId | ProductId заменит существующий ProductId. |
Методы | |
---|---|
| Получить метаданные о подписке |
| Отменить покупку подписки для пользователя. |