Получение списка продуктов
Для получения продуктов используйте метод 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?