Метод получения данных подписки по ID платежа (V2)

Метод позволяет получить подписку из системы платежного провайдера по purchaseToken первого платежа.

Параметры взаимодействия

GET /public/v2/subscription/{packageName}/{subscriptionId}/{purchaseToken}

Атрибут

Тип

Описание

Обязательность

Расположение

Пример заполнения

Public-Token

string

Токен доступа к Public API Rustore

Да

header

packageName

string

Наименование пакета приложения

Да

path

subscriptionId

string

Код продукта-подписки

Да

path

purchaseToken

string

Токен состоит из склеенных параметров invoiceId и userId.

 

Пример токена для invoiceId = 111 и userId = 123: 111.123

Да

path

Параметры успешного ответа

Атрибут

Тип

Описание

Обязательность

Пример заполнения

startTimeMillis

string

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

Да

1577826955637

expiryTimeMillis

string

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

Да

1609456386128

autoRenewing

boolean

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

Да

false

priceCurrencyCode

string

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

Да

RUB

priceAmountMicros

string

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

Да

749000000

countryCode

string

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

Да

RU

developerPayload

string

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

Да

ZXhhbXBsZQ

paymentState

int

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

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

Нет, только для активных подписок (state != CLOSED, REFUNDED, CLOSE_PENDING, ERROR, MIGRATED), иначе не передается

1

cancelReason

int

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

Нет, только для отмененных подписок со статусом CLOSED, иначе не передается

0

orderId

string

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

Да

GPA.3344-2911-7096-60950

acknowledgementState

int

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

Да

1

introductoryPriceInfo{}

object

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

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

Нет, только для подписок с периодом PROMO, иначе не передается

kind

string

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

Да

androidpublisher#subscriptionPurchase

purchaseType

int

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

Нет, передается только в тестовой среде

0

introductoryPriceInfo{}

Атрибут

Тип

Описание

Обязательность

Пример заполнения

introductoryPriceCurrencyCode

string

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

Нет, только для подписок с периодом PROMO

RUB

introductoryPriceAmountMicros

string

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

Нет, только для подписок с периодом PROMO

599000000

introductoryPricePeriod

string

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

Нет, только для подписок с периодом PROMO

P1Y

introductoryPriceCycles

string

Количество расчетных периодов для предложения начальной цены

Нет, только для подписок с периодом PROMO

1

Пример ответа в JSON

{
  "startTimeMillis": "1577826955637",
  "expiryTimeMillis": "1609456386128",
  "autoRenewing": false,
  "priceCurrencyCode": "RUB",
  "priceAmountMicros": "749000000",
  "countryCode": "RU",
  "developerPayload": "eyJlbWFpbCI6InZvbG9keWFfZ29yc2hlbmluQGJrLnJ1In0=\n",
  "paymentState": 1,
  "cancelReason": 0,
  "orderId": "GPA.3344-2911-7096-60950",
  "acknowledgementState": 1,
  "introductoryPriceInfo": {
    "introductoryPriceCurrencyCode": "RUB",
    "introductoryPriceAmountMicros": "599000000",
    "introductoryPricePeriod": "P1Y",
    "introductoryPriceCycles": 1
  },
  "kind": "androidpublisher#subscriptionPurchase"
}

Параметры ошибочного ответа

Атрибут

Тип

Описание

Обязательность

Пример заполнения

error{}

object

Объект с данными ошибки

Да, если код ответа !=200

error{}

Атрибут

Тип

Описание

Обязательность

Пример заполнения

code

number

http-код ответа

Да

message

date

Расшифровка кода ответа

Нет

message

code

message

400

The subscription purchase token does not match the subscription ID

404

No subscription purchase matches the subscription ID

Валидация запроса

При получении запроса проверяется токен авторизации, полученный методом получения токена авторизации:

  • владелец и/или приложение не должны быть заблокированы;

  • токен должен быть действительным;

  • в ответе на запрос invoice в application_code должен содержаться код приложения, соответствующий владельцу, получившему токен;

  • productCode из GET /v2/subscriptions/{id} должен совпадать с subscriptionId из запроса;

  • packageName из path не проверяется.

Was this information helpful?