REST Resource: purchases.productsv2

Ресурс: ProductPurchaseV2

Ресурс ProductPurchaseV2 указывает на статус покупки пользователем товара внутри приложения.

JSON-представление
{
  "productLineItem": [
    {
      object (ProductLineItem)
    }
  ],
  "kind": string,
  "purchaseStateContext": {
    object (PurchaseStateContext)
  },
  "testPurchaseContext": {
    object (TestPurchaseContext)
  },
  "orderId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string,
  "regionCode": string,
  "purchaseCompletionTime": string,
  "acknowledgementState": enum (AcknowledgementState)
}
Поля
productLineItem[]

object ( ProductLineItem )

Содержит информацию на уровне отдельных товаров для ProductPurchaseV2.

kind

string

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

purchaseStateContext

object ( PurchaseStateContext )

Информация о состоянии покупки.

testPurchaseContext

object ( TestPurchaseContext )

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

orderId

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 при совершении покупки.

regionCode

string

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

purchaseCompletionTime

string ( Timestamp format)

Время, когда покупка была успешной, то есть когда состояние покупки изменилось на «ПОКУПКА». Это поле не будет отображаться до завершения платежа. Например, если пользователь инициировал ожидающую транзакцию ( https://developer.android.com/google/play/billing/integrate#pending) , это поле не будет заполнено до тех пор, пока пользователь успешно не выполнит необходимые для завершения транзакции шаги.

Используется RFC 3339, согласно которому сгенерированный вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" или "2014-10-02T15:01:23+05:30" .

acknowledgementState

enum ( AcknowledgementState )

Только вывод. Состояние подтверждения покупки.

PurchaseStateContext

Контекст, касающийся состояния покупки.

JSON-представление
{
  "purchaseState": enum (PurchaseState)
}
Поля
purchaseState

enum ( PurchaseState )

Только вывод. Состояние покупки.

PurchaseState

Возможные штаты для покупки.

Перечисления
PURCHASE_STATE_UNSPECIFIED Место покупки не указано. Это значение никогда не следует устанавливать.
PURCHASED Покупка успешно завершена.
CANCELLED Покупка отменена.
PENDING Покупка находится в состоянии ожидания и еще не завершена. Для получения дополнительной информации об обработке ожидающих покупок см. https://developer.android.com/google/play/billing/integrate#pending .

TestPurchaseContext

Контекст: тестовая покупка.

JSON-представление
{
  "fopType": enum (FopType)
}
Поля
fopType

enum ( FopType )

Тип покупки для тестирования.

FopType

Возможные типы франта.

Перечисления
FOP_TYPE_UNSPECIFIED Тип FOP не указан. Это значение никогда не следует устанавливать.
TEST Покупка была совершена с использованием тестовой карты.

Товарная линейка

Содержит информацию на уровне отдельных товаров для ProductPurchaseV2.

JSON-представление
{
  "productId": string,
  "productOfferDetails": {
    object (ProductOfferDetails)
  }
}
Поля
productId

string

Идентификатор приобретенного товара (например, 'monthly001').

productOfferDetails

object ( ProductOfferDetails )

Подробности предложения по данному товару.

Информация о предложении продукта

Предоставьте подробную информацию по каждой позиции заказа.

JSON-представление
{
  "offerTags": [
    string
  ],
  "offerId": string,
  "purchaseOptionId": string,
  "rentOfferDetails": {
    object (RentOfferDetails)
  },
  "offerToken": string,
  "quantity": integer,
  "refundableQuantity": integer,
  "consumptionState": enum (ConsumptionState)
}
Поля
offerTags[]

string

Последние теги предложения, связанные с данным предложением. Включают теги, унаследованные от варианта покупки.

offerId

string

Идентификатор предложения. Указывается только для предложений.

purchaseOptionId

string

Идентификатор варианта покупки.

rentOfferDetails

object ( RentOfferDetails )

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

offerToken

string

Токен предложения, используемый для каждой транзакции при оформлении данной позиции покупки.

quantity

integer

Количество, связанное с покупкой внутриигрового продукта.

refundableQuantity

integer

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

consumptionState

enum ( ConsumptionState )

Только выходные данные. Состояние потребления после покупки.

Подробности предложения по аренде

Этот тип не содержит полей.

Предложение содержит подробную информацию по позиции в договоре аренды.

Состояние потребления

Возможные состояния потребления.

Перечисления
CONSUMPTION_STATE_UNSPECIFIED Состояние потребления не указано. Это значение никогда не следует устанавливать.
CONSUMPTION_STATE_YET_TO_BE_CONSUMED Ещё не съедено.
CONSUMPTION_STATE_CONSUMED Уже съедено.

Состояние подтверждения

Состояние подтверждения получения разового продукта.

Перечисления
ACKNOWLEDGEMENT_STATE_UNSPECIFIED Состояние подтверждения не указано.
ACKNOWLEDGEMENT_STATE_PENDING Покупка пока не подтверждена.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED Покупка подтверждена.

Методы

getproductpurchasev2

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

коды ошибок

При работе с этим ресурсом возвращаются следующие коды ошибок HTTP:

Код ошибки Причина Описание Разрешение
400 invalidPurchaseState Покупка находится в недействительном состоянии для выполнения запрошенной операции. Например, вы можете пытаться подтвердить уже совершенную покупку или отменить неактивную подписку. Перед выполнением операции проверьте текущее состояние ресурса с помощью соответствующего API-запроса Get. Убедитесь, что ресурс находится в подходящем состоянии для выполнения действия.
400 invalidValue В запросе было предоставлено недопустимое значение. Такая ошибка часто возникает при получении некорректного или недействительного токена покупки. Исправьте недопустимое значение поля в теле запроса или параметрах в соответствии со справочником API.
400 productNotOwnedByUser Предоставленный токен покупки действителен, но пользователь в данный момент не является владельцем продукта. Это может произойти, если покупка была возвращена, аннулирована или истек срок ее действия до подтверждения. Перед выполнением операции проверьте текущее состояние ресурса с помощью соответствующего API-запроса Get. Убедитесь, что ресурс находится в подходящем состоянии для выполнения действия.
400 purchaseTokenMismatch Предоставленный токен покупки не соответствует покупке, названию пакета, идентификатору подписки или идентификатору продукта. Убедитесь, что все данные в запросе верны и соответствуют друг другу.
400 required В запросе отсутствует обязательное поле или параметр. Ознакомьтесь с документацией API, чтобы убедиться в наличии всех обязательных полей и параметров.
400 unsupportedIabType Данная операция не поддерживается для указанного типа внутриигровых покупок. Убедитесь, что метод API совместим с управляемым типом элемента.
403 userInsufficientPermission У пользователя недостаточно прав для выполнения запрошенной операции. Убедитесь, что авторизованный пользователь имеет необходимые разрешения в консоли Google Play. Дополнительные сведения см. в разделе «Использование служебной учетной записи» .
404 notFound Запрошенный ресурс не найден. Убедитесь в правильности идентификаторов (например, токен покупки, название пакета, идентификатор продукта, идентификатор подписки).
409 concurrentUpdate Была предпринята попытка обновить объект, который обновляется одновременно с первым. Повторите запрос с экспоненциальной задержкой. Избегайте одновременных изменений одного и того же ресурса.
5xx Generic error Общая ошибка на сервере Google Play. Повторите запрос.

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