- Ресурс: ПодпискаПокупка
- Вводная информация о цене
- ПодпискаОтменаРезультат опроса
- ИзменениеЦеныПодписки
- Методы
Ресурс: ПодпискаПокупка
Ресурс 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 дней назад. Больше не следует запрашивать такие подписки. |