- Ресурс: ПодпискаПокупка
 - Вводная информация о цене
 - ПодпискаОтменаРезультат опроса
 - ИзменениеЦеныПодписки
 - Методы
 
Ресурс: ПодпискаПокупка
Ресурс SubscriptionPurchase указывает статус покупки подписки пользователем.
| JSON-представление | 
|---|
{ "kind": string, "startTimeMillis": string, "expiryTimeMillis": string, "autoResumeTimeMillis": string, "autoRenewing": boolean, "priceCurrencyCode": string, "priceAmountMicros": string, "introductoryPriceInfo": { object (  | 
| Поля | |
|---|---|
 kind |   Этот тип представляет собой объект subscriptionPurchase в сервисе androidpublisher.  | 
 startTimeMillis |   Время предоставления подписки в миллисекундах с начала эпохи.  | 
 expiryTimeMillis |   Время истечения срока действия подписки в миллисекундах с начала эпохи.  | 
 autoResumeTimeMillis |   Время автоматического возобновления подписки (в миллисекундах с начала эпохи). Отображается только в том случае, если пользователь запросил приостановку подписки.  | 
 autoRenewing |   Будет ли подписка автоматически продлена по достижении текущего срока действия.  | 
 priceCurrencyCode |   Код валюты для цены подписки по стандарту ISO 4217. Например, если цена указана в британских фунтах стерлингов, priceCurrencyCode будет «GBP».  | 
 priceAmountMicros |   Стоимость подписки. Для стран, где налог не взимается, цена указана без налога. Для стран, где налог включен, цена указана с налогом. Цена указана в микроединицах, где 1 000 000 микроединиц представляют одну единицу валюты. Например, если стоимость подписки составляет 1,99 евро, значение priceAmountMicros равно 1990 000.  | 
 introductoryPriceInfo |   Информация о начальной цене подписки. Эта информация отображается только в случае приобретения подписки по начальной цене. Это поле не указывает на то, что в настоящее время подписка находится на этапе ознакомительной цены.  | 
 countryCode |   Код страны/региона выставления счетов пользователя по стандарту ISO 3166-1 alpha-2 на момент предоставления подписки.  | 
 developerPayload |   Строка, указанная разработчиком, которая содержит дополнительную информацию о заказе.  | 
 paymentState |   Состояние оплаты подписки. Возможные значения: 0. Ожидание оплаты. 1. Получение оплаты. 2. Бесплатный пробный период. 3. Ожидание отложенного обновления/понижения. Отсутствует для отмененных, истекших подписок.  | 
 cancelReason |   Причина, по которой подписка была отменена или не продлевается автоматически. Возможные значения: 0. Пользователь отменил подписку. 1. Подписка была отменена системой, например, из-за проблем с оплатой. 2. Подписка была заменена новой подпиской. 3. Подписка была отменена разработчиком.  | 
 userCancellationTimeMillis |   Время отмены подписки пользователем (в миллисекундах с начала эпохи). Присутствует только если cancelReason равен 0.  | 
 cancelSurveyResult |   Информация, предоставляемая пользователем при завершении процедуры отмены подписки (опрос о причинах отмены).  | 
 orderId |   Идентификатор последнего повторяющегося заказа, связанного с покупкой подписки. Если подписка была отменена из-за отклонения платежа, это будет идентификатор заказа, платеж в котором был отклонен.  | 
 linkedPurchaseToken |   Токен покупки исходной подписки, если эта подписка является одной из следующих: 0. Повторная регистрация отмененной, но не истекшей подписки 1. Повышение/понижение уровня предыдущей подписки Например, предположим, что пользователь изначально регистрируется, и вы получаете токен покупки X, затем пользователь отменяет подписку и проходит процедуру повторной регистрации (до того, как истечет срок его подписки), и вы получаете токен покупки Y, и, наконец, пользователь обновляет свою подписку, и вы получаете токен покупки Z. Если вы вызываете этот API с токеном покупки Z, это поле будет установлено на Y. Если вы вызываете этот API с токеном покупки Y, это поле будет установлено на X. Если вы вызываете этот API с токеном покупки X, это поле не будет установлено.  | 
 purchaseType |   Тип покупки подписки. Это поле заполняется только в том случае, если покупка не была совершена с использованием стандартного способа оплаты внутри приложения. Возможные значения: 0. Тестовая (т.е. приобретена с учётной записи для тестирования лицензии). 1. Промо (т.е. приобретена с использованием промокода).  | 
 priceChange |   Последняя доступная информация об изменении цены. Эта информация отображается только в случае предстоящего изменения цены на подписку, которое ещё не применено. После продления подписки по новой цене или отмены подписки информация об изменении цены возвращаться не будет.  | 
 profileName |   Имя профиля пользователя на момент покупки подписки. Присутствует только для покупок, совершённых с помощью функции «Подписаться через Google».  | 
 emailAddress |   Адрес электронной почты пользователя на момент покупки подписки. Присутствует только для покупок, совершённых с помощью функции «Подписаться через Google».  | 
 givenName |   Имя пользователя на момент покупки подписки. Присутствует только для покупок, совершённых с помощью функции «Подписаться через Google».  | 
 familyName |   Фамилия пользователя на момент покупки подписки. Присутствует только для покупок, совершённых с помощью функции «Подписаться через Google».  | 
 profileId |   Идентификатор профиля Google пользователя на момент покупки подписки. Присутствует только для покупок, совершённых с помощью функции «Подписаться через Google».  | 
 acknowledgementState |   Состояние подтверждения подписки. Возможные значения: 0. Ожидает подтверждения, 1. Подтверждено.  | 
 externalAccountId |   Идентификатор учётной записи пользователя в стороннем сервисе. Присутствует только в том случае, если привязка учётной записи произошла в процессе покупки подписки.  | 
 promotionType |   Тип промоакции, применяемой к данной покупке. Это поле заполняется только в том случае, если при покупке подписки применялась промоакция. Возможные значения: 0. Одноразовый код. 1. Код красоты.  | 
 promotionCode |   Промокод, применённый к этой покупке. Это поле заполняется только в том случае, если при покупке подписки был применён промокод.  | 
 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 при совершении покупки.  | 
Вводная информация о цене
Содержит ознакомительную информацию о ценах на подписку.
| JSON-представление | 
|---|
{ "introductoryPriceCurrencyCode": string, "introductoryPriceAmountMicros": string, "introductoryPricePeriod": string, "introductoryPriceCycles": integer }  | 
| Поля | |
|---|---|
introductoryPriceCurrencyCode |   Код валюты ISO 4217 для начальной цены подписки. Например, если цена указана в британских фунтах стерлингов, priceCurrencyCode будет «GBP».  | 
 introductoryPriceAmountMicros |   Начальная цена подписки, без учёта налога. Валюта та же, что и в priceCurrencyCode. Цена выражена в микроединицах, где 1 000 000 микроединиц представляют одну единицу валюты. Например, если цена подписки составляет 1,99 евро, priceAmountMicros будет равен 1990 000.  | 
 introductoryPricePeriod |   Период действия начальной цены, указанный в формате ISO 8601. Возможные значения (но не ограничиваются): «P1W» (одна неделя), «P1M» (один месяц), «P3M» (три месяца), «P6M» (шесть месяцев) и «P1Y» (один год).  | 
 introductoryPriceCycles |   Номер расчетного периода, для которого будут действовать ознакомительные цены.  | 
ПодпискаОтменаРезультат опроса
Информация, предоставляемая пользователем при завершении процедуры отмены подписки (опрос о причинах отмены).
| JSON-представление | 
|---|
{ "cancelSurveyReason": integer, "userInputCancelReason": string }  | 
| Поля | |
|---|---|
 cancelSurveyReason |   Причина отмены, выбранная пользователем в опросе. Возможные значения: 0. Другое. 1. Я недостаточно пользуюсь этой услугой. 2. Технические проблемы. 3. Причины, связанные с расходами. 4. Я нашёл приложение получше.  | 
 userInputCancelReason |   Причина отмены ввода, заданная пользователем. Отображается только если cancelReason равен 0.  | 
ИзменениеЦеныПодписки
Содержит информацию об изменении цены подписки, которую можно использовать для управления действиями пользователя при изменении цены в приложении. Это может быть сделано в форме запроса подтверждения от пользователя или адаптации пользовательского опыта для успешной конверсии.
| JSON-представление | 
|---|
{
  "newPrice": {
    object ( | 
| Поля | |
|---|---|
 newPrice |   Новая цена, по которой подписка будет продлена, если пользователь примет изменение цены.  | 
 state |   Текущее состояние изменения цены. Возможные значения: 0. «Не выполнено»: состояние ожидания изменения цены, ожидающего согласия пользователя. В этом состоянии вы можете запросить подтверждение от пользователя через API приложения. 1. «Принято»: состояние принятого изменения цены, с которым подписка будет продлена, если не будет отменена. Изменение цены вступит в силу в будущем при продлении подписки. Обратите внимание, что изменение может не произойти при следующем продлении подписки.  | 
Методы | |
|---|---|
  | Подтверждает покупку подписки. | 
  | Отменяет покупку подписки пользователем. | 
  | Откладывает покупку подписки пользователем до указанного срока действия в будущем. | 
 (deprecated)  | Устарело: вместо этого используйте purchases.subscriptionsv2.get. | 
 (deprecated)  | Устарело: вместо этого используйте orders.refund. | 
 (deprecated)  | Устарело: вместо этого используйте purchases.subscriptionsv2.revoke. | 
Коды ошибок
Операции этого ресурса возвращают следующие коды ошибок HTTP:
| Код ошибки | Причина | Разрешение | 
|---|---|---|
 5xx | Общая ошибка на сервере Google Play. |  Повторите запрос. Если проблема не устранена, обратитесь к менеджеру своего аккаунта Google Play или отправьте запрос в службу поддержки. Рекомендуем проверить панель состояния Play на наличие известных сбоев.  | 
 409 |  Ошибка параллельного обновления.  Была попытка обновить обновляемый объект. Например, покупка подтверждается вызовом метода   | Повторите запрос. | 
 410 | Покупка подписки больше недоступна для запроса, так как срок ее действия истек слишком давно. | Возникает при запросе подписки, срок действия которой истек более 60 дней назад. Больше не следует запрашивать такие подписки. |