REST Resource: purchases.subscriptions

Ресурс: ПодпискаПокупка

Ресурс SubscriptionPurchase указывает статус покупки подписки пользователем.

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

string

Этот тип представляет собой объект subscriptionPurchase в сервисе androidpublisher.

startTimeMillis

string ( int64 format)

Время предоставления подписки в миллисекундах с начала эпохи.

expiryTimeMillis

string ( int64 format)

Время истечения срока действия подписки в миллисекундах с начала эпохи.

autoResumeTimeMillis

string ( int64 format)

Время автоматического возобновления подписки (в миллисекундах с начала эпохи). Отображается только в том случае, если пользователь запросил приостановку подписки.

autoRenewing

boolean

Будет ли подписка автоматически продлена по достижении текущего срока действия.

priceCurrencyCode

string

Код валюты для цены подписки по стандарту ISO 4217. Например, если цена указана в британских фунтах стерлингов, priceCurrencyCode будет «GBP».

priceAmountMicros

string ( int64 format)

Стоимость подписки. Для стран, где налог не взимается, цена указана без налога. Для стран, где налог включен, цена указана с налогом. Цена указана в микроединицах, где 1 000 000 микроединиц представляют одну единицу валюты. Например, если стоимость подписки составляет 1,99 евро, значение priceAmountMicros равно 1990 000.

introductoryPriceInfo

object ( IntroductoryPriceInfo )

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

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

countryCode

string

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

developerPayload

string

Строка, указанная разработчиком, которая содержит дополнительную информацию о заказе.

paymentState

integer

Состояние оплаты подписки. Возможные значения: 0. Ожидание оплаты. 1. Получение оплаты. 2. Бесплатный пробный период. 3. Ожидание отложенного обновления/понижения.

Отсутствует для отмененных, истекших подписок.

cancelReason

integer

Причина, по которой подписка была отменена или не продлевается автоматически. Возможные значения: 0. Пользователь отменил подписку. 1. Подписка была отменена системой, например, из-за проблем с оплатой. 2. Подписка была заменена новой подпиской. 3. Подписка была отменена разработчиком.

userCancellationTimeMillis

string ( int64 format)

Время отмены подписки пользователем (в миллисекундах с начала эпохи). Присутствует только если cancelReason равен 0.

cancelSurveyResult

object ( SubscriptionCancelSurveyResult )

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

orderId

string

Идентификатор последнего повторяющегося заказа, связанного с покупкой подписки. Если подписка была отменена из-за отклонения платежа, это будет идентификатор заказа, платеж в котором был отклонен.

linkedPurchaseToken

string

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

Например, предположим, что пользователь изначально регистрируется, и вы получаете токен покупки X, затем пользователь отменяет подписку и проходит процедуру повторной регистрации (до того, как истечет срок его подписки), и вы получаете токен покупки Y, и, наконец, пользователь обновляет свою подписку, и вы получаете токен покупки Z. Если вы вызываете этот API с токеном покупки Z, это поле будет установлено на Y. Если вы вызываете этот API с токеном покупки Y, это поле будет установлено на X. Если вы вызываете этот API с токеном покупки X, это поле не будет установлено.

purchaseType

integer

Тип покупки подписки. Это поле заполняется только в том случае, если покупка не была совершена с использованием стандартного способа оплаты внутри приложения. Возможные значения: 0. Тестовая (т.е. приобретена с учётной записи для тестирования лицензии). 1. Промо (т.е. приобретена с использованием промокода).

priceChange

object ( SubscriptionPriceChange )

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

После продления подписки по новой цене или отмены подписки информация об изменении цены возвращаться не будет.

profileName

string

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

emailAddress

string

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

givenName

string

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

familyName

string

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

profileId

string

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

acknowledgementState

integer

Состояние подтверждения подписки. Возможные значения: 0. Ожидает подтверждения, 1. Подтверждено.

externalAccountId

string

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

promotionType

integer

Тип промоакции, применяемой к данной покупке. Это поле заполняется только в том случае, если при покупке подписки применялась промоакция. Возможные значения: 0. Одноразовый код. 1. Код красоты.

promotionCode

string

Промокод, применённый к этой покупке. Это поле заполняется только в том случае, если при покупке подписки был применён промокод.

obfuscatedExternalAccountId

string

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

obfuscatedExternalProfileId

string

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

Вводная информация о цене

Содержит ознакомительную информацию о ценах на подписку.

JSON-представление
{
  "introductoryPriceCurrencyCode": string,
  "introductoryPriceAmountMicros": string,
  "introductoryPricePeriod": string,
  "introductoryPriceCycles": integer
}
Поля
introductoryPriceCurrencyCode

string

Код валюты ISO 4217 для начальной цены подписки. Например, если цена указана в британских фунтах стерлингов, priceCurrencyCode будет «GBP».

introductoryPriceAmountMicros

string ( int64 format)

Начальная цена подписки, без учёта налога. Валюта та же, что и в priceCurrencyCode. Цена выражена в микроединицах, где 1 000 000 микроединиц представляют одну единицу валюты. Например, если цена подписки составляет 1,99 евро, priceAmountMicros будет равен 1990 000.

introductoryPricePeriod

string

Период действия начальной цены, указанный в формате ISO 8601. Возможные значения (но не ограничиваются): «P1W» (одна неделя), «P1M» (один месяц), «P3M» (три месяца), «P6M» (шесть месяцев) и «P1Y» (один год).

introductoryPriceCycles

integer

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

ПодпискаОтменаРезультат опроса

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

JSON-представление
{
  "cancelSurveyReason": integer,
  "userInputCancelReason": string
}
Поля
cancelSurveyReason

integer

Причина отмены, выбранная пользователем в опросе. Возможные значения: 0. Другое. 1. Я недостаточно пользуюсь этой услугой. 2. Технические проблемы. 3. Причины, связанные с расходами. 4. Я нашёл приложение получше.

userInputCancelReason

string

Причина отмены ввода, заданная пользователем. Отображается только если cancelReason равен 0.

ИзменениеЦеныПодписки

Содержит информацию об изменении цены подписки, которую можно использовать для управления действиями пользователя при изменении цены в приложении. Это может быть сделано в форме запроса подтверждения от пользователя или адаптации пользовательского опыта для успешной конверсии.

JSON-представление
{
  "newPrice": {
    object (Price)
  },
  "state": integer
}
Поля
newPrice

object ( Price )

Новая цена, по которой подписка будет продлена, если пользователь примет изменение цены.

state

integer

Текущее состояние изменения цены. Возможные значения: 0. «Не выполнено»: состояние ожидания изменения цены, ожидающего согласия пользователя. В этом состоянии вы можете запросить подтверждение от пользователя через API приложения. 1. «Принято»: состояние принятого изменения цены, с которым подписка будет продлена, если не будет отменена. Изменение цены вступит в силу в будущем при продлении подписки. Обратите внимание, что изменение может не произойти при следующем продлении подписки.

Методы

acknowledge

Подтверждает покупку подписки.

cancel

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

defer

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

get
(deprecated)

Устарело: вместо этого используйте purchases.subscriptionsv2.get.

refund
(deprecated)

Устарело: вместо этого используйте orders.refund.

revoke
(deprecated)

Устарело: вместо этого используйте purchases.subscriptionsv2.revoke.

Коды ошибок

Операции этого ресурса возвращают следующие коды ошибок HTTP:

Код ошибки Причина Разрешение
5xx Общая ошибка на сервере Google Play. Повторите запрос.

Если проблема не устранена, обратитесь к менеджеру своего аккаунта Google Play или отправьте запрос в службу поддержки. Рекомендуем проверить панель состояния Play на наличие известных сбоев.

409 Ошибка параллельного обновления.

Была попытка обновить обновляемый объект. Например, покупка подтверждается вызовом метода acknowledgePurchase() библиотеки Play Billing Library и одновременным вызовом метода purchases.products.acknowledge API Play Developer.

Повторите запрос.
410 Покупка подписки больше недоступна для запроса, так как срок ее действия истек слишком давно. Возникает при запросе подписки, срок действия которой истек более 60 дней назад. Больше не следует запрашивать такие подписки.