Получение списка продуктов

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

RuStoreBillingClient.INSTANCE.getProducts().getProducts(Arrays.asList("id1", "id2")).addOnCompleteListener(new OnCompleteListener<ProductsResponse>() {
    @Override
    public void onFailure(@NonNull Throwable throwable) {
        // Process error
    }
 
    @Override
    public void onSuccess(ProductsResponse productsResponse) {
        // Process success
    }
});
  • productIds: List<String> — список идентификаторов продуктов

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

interface ProductsResponse extends ResponseWithCode {
    @Nullable
    @Override
    public RequestMeta getMeta();
 
    @Override
    public int getCode();
 
    @Nullable
    @Override
    public String getErrorMessage();
 
    @Nullable
    @Override
    public String getErrorDescription();
 
    @Nullable
    @Override
    public List<DigitalShopGeneralError> getErrors();
 
    public List<Product> getProducts();
}
  • getMeta() — дополнительная информация о запросе;
  • getCode() — код ответа;
  • getErrorMessage() — сообщение об ошибке; 
  • getErrorDescription() — описание ошибки; 
  • getErrors() — список ошибок;
  • getProducts() — список продуктов.

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

interface RequestMeta {
    public String getTraceId();
}
  • getTraceId() — метка запроса.

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

interface DigitalShopGeneralError {
    @Nullable
    public String getName();
    @Nullable
    public int getCode();
    @Nullable
    public String getDescription();
}
  • getName() — имя ошибки;
  • getCode() — код ошибки;
  • getDescription() — описание ошибки.

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

interface Product {
    public String getProductId();
 
    @Nullable
    public ProductType getProductType();
 
    public ProductStatus getProductStatus();
 
    @Nullable
    public String getPriceLabel();
 
    @Nullable
    public Integer getPrice();
 
    @Nullable
    public String getCurrency();
 
    @Nullable
    public String getLanguage();
 
    @Nullable
    public String getTitle();
 
    @Nullable
    public String getDescription();
 
    @Nullable
    public Uri getImageUrl();
 
    @Nullable
    public Uri getPromoImageUrl();
 
    @Nullable
    public ProductSubscription getProductSubscription();
}
  • getProductId() — идентификатор продукта; 
  • getProductType() — тип продукта; 
  • getProductStatus() — статус продукта; 
  • getPriceLabel() — отформатированная цена товара, включая валютный знак на языке [language]; 
  • getPrice() — цена в минимальных единицах; 
  • getCurrency() — код валюты ISO 4217; 
  • getLanguage() — язык, указанный с помощью BCP 47 кодирования; 
  • getTitle() — название продукта на языке [language];
  • getDescription() — описание продукта на языке [language]; 
  • getImageUrl() — ссылка на картинку; 
  • getPromoImageUrl() — ссылка на промо картинку; 
  • getSubscription() — описание подписки, возвращается только для продуктов с типом subscription. 

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

interface ProductSubscription {
    @Nullable
    public SubscriptionPeriod getSubscriptionPeriod();
 
    @Nullable
    public SubscriptionPeriod getFreeTrialPeriod();
 
    @Nullable
    public SubscriptionPeriod getGracePeriod();
 
    @Nullable
    public String getIntroductoryPrice();
 
    @Nullable
    public String getIntroductoryPriceAmount();
 
    @Nullable
    public String getIntroductoryPricePeriod();
}
  • getSubscriptionPeriod() — период подписки; 
  • getFreeTrialPeriod() — пробный период подписки; 
  • getGracePeriod() — льготный период подписки; 
  • getIntroductoryPrice() — отформатированная вступительная цена подписки, включая знак валюты, на языке product:language; 
  • getIntroductoryPriceAmount() — вступительная цена в минимальных единицах валюты (в копейках); 
  • getIntroductoryPricePeriod() — расчетный период вступительной цены. 

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

interface SubscriptionPeriod {
    int getYears();
 
    int getMonths();
 
    int getDays();
}
  • getYears() — количество лет; 
  • getMonths() — количество месяцев; 
  • getDays() — количество дней. 
Was this information helpful?