Получение актуальной информации по списку продуктов

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

RuStoreBillingClient.products.getProducts(productIds = listOf("id1, id2"))
            .addOnCompleteListener(object : OnCompleteListener<ProductsResponse> {
                override fun onFailure(throwable: Throwable) {
                    // Process error
                }
 
                override fun onSuccess(result: ProductsResponse) {
                    // Process success
                }
            })
  • productIds: list<string> — список идентификаторов продуктов. 

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

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

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

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

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

data class Product(
    val productId: String,
    val productType: ProductType?,
    val productStatus: ProductStatus,
    val priceLabel: String?,
    val price: Int?,
    val currency: String?,
    val language: String?,
    val title: String?,
    val description: String?,
    val imageUrl: Uri?,
    val promoImageUrl: Uri?,
    val subscription: ProductSubscription?,
)
  • productId — идентификатор продукта; 
  • productType — тип продукта; 
  • productStatus — статус продукта; 
  • priceLable — отформатированная цена товара, включая валютный знак на языке [language];
  • price — цена в минимальных единицах; 
  • currency — код валюты ISO 4217; 
  • language — язык, указанный с помощью BCP 47 кодирования; 
  • title — название продукта на языке [language];
  • description — описание продукта на языке [language]; 
  • imageUrl — ссылка на картинку; 
  • promoImageUrl — ссылка на промо картинку;
  • subscription — описание подписки, возвращается только для продуктов с типом subscription.

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

data class ProductSubscription(
    val subscriptionPeriod: SubscriptionPeriod?,
    val freeTrialPeriod: SubscriptionPeriod?,
    val gracePeriod: SubscriptionPeriod?,
    val introductoryPrice: String?,
    val introductoryPriceAmount: String?,
    val introductoryPricePeriod: SubscriptionPeriod?
)
  • subscriptionPeriod — период подписки;
  • freeTrialPeriod — пробный период подписки;
  • gracePeriod — льготный период подписки;
  • introductoryPrice — отформатированная вступительная цена подписки, включая знак валюты, на языке product:language;
  • introductoryPriceAmount — вступительная цена в минимальных единицах валюты (в копейках);
  • introductoryPricePeriod — расчетный период вступительной цены.

Структура периода подписки:

data class SubscriptionPeriod(
    val years: Int,
    val months: Int,
    val days: Int,
)
  • years — количество лет;
  • months — количество месяцев;
  • days — количество дней.
Was this information helpful?