Получение информации о покупке

Для получения информации о покупке, используйте метод getPurchaseInfo.

RuStoreBillingClient.purchases.getPurchaseInfo("purchaseId").addOnCompleteListener(object : OnCompleteListener<PurchaseInfoResponse> {
    override fun onFailure(throwable: Throwable) {
        // Process error
    }
 
    override fun onSuccess(result: PurchaseInfoResponse) {
        // Process success
    }
})

Метод возвращает:

data class PurchaseInfoResponse(
    override val meta: RequestMeta?,
    override val code: Int,
    override val errorMessage: String?,
    override val errorDescription: String?,
    override val errors: List<DigitalShopGeneralError>?,
    val purchase: Purchase?,
) : ResponseWithCode
  • meta — дополнительная информация о запросе
  • code — код ответа.
  • errorMessage — сообщение об ошибке. 
  • errorDescription — описание ошибки. 
  • errors — список ошибок.
  • purchase — информация о покупке.

Структура дополнительной информации о запросе:

data class RequestMeta(
    val traceId: String,
)
  • traceId - метка запроса.

Структура ошибки:

data class DigitalShopGeneralError(
    val name: String?,
    val code: Int?,
    val description: String?,
)
 
  • name — наименование атрибута ошибки;
  • code — код ошибки;
  • description — описание ошибки.

Структура покупки:

data class Purchase(
    val purchaseId: String?,
    val productId: String,
    val productType: ProductType?,
    val invoiceId: String?,
    val description: String?,
    val language: String?,
    val purchaseTime: Date?,
    val orderId: String?,
    val amountLabel: String?,
    val amount: Int?,
    val currency: String?,
    val quantity: Int?,
    val purchaseState: PurchaseState?,
    val developerPayload: String?,
    val subscriptionToken: String?
)
 
  • purchaseId — идентификатор покупки;
  • productId — идентификатор продукта;
  • productType — тип продукта;
  • invoiceId — идентификатор счета;
  • description — описание покупки;
  • language — язык, указанный с помощью BCP 47 кодирования; 
  • purchaseTime — время покупки (в формате RFC 3339);
  • orderId — уникальный идентификатор оплаты, сформированный приложением (uuid);
  • amountLable — отформатированная цена покупки, включая валютный знак на языке [language];
  • amount — цена в минимальных единицах валюты;
  • currency — код валюты ISO 4217;
  • quantity — количество продукта;
  • purchaseState — состояние покупки:
    • возможные значения состояния покупки: 

      • CREATED — создана;
      • INVOICE_CREATED — создана, ожидает оплаты; 
      • CONFIRMED — подтверждена;
      • PAID — оплачена;
      • CANCELLED — покупка отменена; 
      • CONSUMED — потребление покупки подтверждено; 
      • CLOSED — подписка была отменена.
  • developerPayload — указанная разработчиком строка, содержащая дополнительную информацию о заказе;
  • subscriptionToken — токен для валидации покупки на сервере. Подробнее о валидации покупки на сервере.

Статусная модель (purchaseState):

Статусная модель покупки подписок (SUBSCRIPTIONS): 

image

Статусная модель покупки непотребляемых продуктов (NON-CONSUMABLES):

image

Статусная модель покупки потребляемых продуктов (CONSUMABLES):

image

Was this information helpful?