Получение списка покупок пользователя

Для получения  списка покупок пользователя используйте метод getPurchases

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

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

data class PurchasesResponse(
    override val code: Int,
    override val errorMessage: String?,
    override val errorDescription: String?,
    override val traceId: String?,
    override val errors: List<DigitalShopGeneralError>?,
    val purchases: List<Purchase>?,
) : ResponseWithCode
  • code — код ответа;
  • errorMessage — сообщение об ошибке для пользователя;
  • errorDescription — расшифровка сообщения об ошибке; 
  • traceId — идентификатор ошибочного сообщения;
  • errors — список ошибок для запрошенных покупок;
  • purchases — список запрошенных покупок.

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

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 description: String?,
    val language: String?,
    val purchaseTime: String?,
    val orderId: String?,
    val amountLabel: String?,
    val amount: Int?,
    val currency: String?,
    val quantity: Int?,
    val purchaseState: PurchaseState?,
    val developerPayload: String?,
)
  • purchaseId — идентификатор покупки;
  • productId — идентификатор продукта;
  • 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 — указанная разработчиком строка, содержащая дополнительную информацию о заказе.

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

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

image   

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

    image  

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

image

Was this information helpful?