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

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

Вызов метода GetProducts
long requestId = URuStoreBillingClient::Instance()->GetProducts(
    productIds,
    [](long requestId, TSharedPtr<FURuStoreProductsResponse, ESPMode::ThreadSafe> response) {
        // Process response
    }, 
    [](long requestId, TSharedPtr<FURuStoreError, ESPMode::ThreadSafe> error) {
        // Process error
    }
);
  • TArray<FString> productIds  список идентификаторов продуктов. 

Blueprint-реализация:

image

image

image

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

Ответ GetProducts
USTRUCT(BlueprintType)
struct FURuStoreProductsResponse : public FURuStoreResponseWithCode
{
    GENERATED_USTRUCT_BODY()
 
    UPROPERTY(BlueprintReadOnly)
    TArray<FURuStoreProduct> products;
};
  • products  список продуктов.

Базовый класс ответа:

Базовый класс ответа
USTRUCT(BlueprintType)
struct FURuStoreResponseWithCode
{
    GENERATED_USTRUCT_BODY()
 
    FURuStoreResponseWithCode()
    {
        int code = 0;
        errorMessage = "";
        errorDescription = "";
    }
 
    UPROPERTY(BlueprintReadOnly)
    int code;
 
    UPROPERTY(BlueprintReadOnly)
    FString errorMessage;
 
    UPROPERTY(BlueprintReadOnly)
    FString errorDescription;
 
    UPROPERTY(BlueprintReadOnly)
    TArray<FUDigitalShopGeneralError> errors;
};  
  • code  код ответа.
  • errorMessage  сообщение об ошибке.
  • errorDescription  описание ошибки.
  • errors  список ошибок.

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

Структура ошибки
USTRUCT(BlueprintType)
struct FURuStoreDigitalShopGeneralError
{
    GENERATED_USTRUCT_BODY()
 
    FURuStoreDigitalShopGeneralError()
    {
        name = "";
        code = 0;
        description = "";
    }
 
    UPROPERTY(BlueprintReadOnly)
    FString name;
 
    UPROPERTY(BlueprintReadOnly)
    int code;
 
    UPROPERTY(BlueprintReadOnly)
    FString description;
};
  • name  имя ошибки.
  • code  код ошибки.

  • description  описание ошибки.

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

Структура продукта
USTRUCT(BlueprintType)
struct FURuStoreProduct
{
    GENERATED_USTRUCT_BODY()
 
    FURuStoreProduct()
    {
        productId = "";
        productType = EURuStoreProductType::CONSUMABLE;
        productStatus = EURuStoreProductStatus::INACTIVE;
        priceLabel = "";
        price = 0;
        currency = "";
        language = "";
        title = "";
        description = "";
        imageUrl = "";
        promoImageUrl = "";
    }
 
    UPROPERTY(BlueprintReadOnly)
    FString productId;
 
    UPROPERTY(BlueprintReadOnly)
    EURuStoreProductType productType;
 
    UPROPERTY(BlueprintReadOnly)
    EURuStoreProductStatus productStatus;
 
    UPROPERTY(BlueprintReadOnly)
    FString priceLabel;
 
    UPROPERTY(BlueprintReadOnly)
    int price;
 
    UPROPERTY(BlueprintReadOnly)
    FString currency;
 
    UPROPERTY(BlueprintReadOnly)
    FString language;
 
    UPROPERTY(BlueprintReadOnly)
    FString title;
 
    UPROPERTY(BlueprintReadOnly)
    FString description;
 
    UPROPERTY(BlueprintReadOnly)
    FString imageUrl;
 
    UPROPERTY(BlueprintReadOnly)
    FString promoImageUrl;
 
    UPROPERTY(BlueprintReadOnly)
    FURuStoreProductSubscription subscription;
};
  • productId  идентификатор продукта. 
  • productType  тип продукта. 
  • productStatus  статус продукта. 
  • priceLable  отформатированная цена товара, включая валютный знак на языке [language]. 
  • price  цена в минимальных единицах (копейках). 
  • currency  код валюты ISO 4217. 
  • language  язык, указанный с помощью BCP 47 кодирования. 
  • title  название продукта на языке [language].
  • description  описание продукта на языке [language]. 
  • imageUrl  ссылка на картинку. 
  • promoImageUrl  ссылка на промо картинку. 
  • subscription  описание подписки, возвращается только для продуктов с типом subscription. 

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

Структура подписки
USTRUCT(BlueprintType)
struct FURuStoreProductSubscription
{
    GENERATED_USTRUCT_BODY()
 
    FURuStoreProductSubscription()
    {
        introductoryPrice = "";
        introductoryPriceAmount = "";
    }
 
    UPROPERTY(BlueprintReadOnly)
    FURuStoreSubscriptionPeriod subscriptionPeriod;
 
    UPROPERTY(BlueprintReadOnly)
    FURuStoreSubscriptionPeriod freeTrialPeriod;
 
    UPROPERTY(BlueprintReadOnly)
    FURuStoreSubscriptionPeriod gracePeriod;
 
    UPROPERTY(BlueprintReadOnly)
    FString introductoryPrice;
 
    UPROPERTY(BlueprintReadOnly)
    FString introductoryPriceAmount;
 
    UPROPERTY(BlueprintReadOnly)
    FURuStoreSubscriptionPeriod introductoryPricePeriod;
};  
  • subscriptionPeriod  период подписки. 
  • freeTrialPeriod  пробный период подписки. 
  • gracePeriod  льготный период подписки. 
  • introductoryPrice  отформатированная вступительная цена подписки, включая знак валюты, на языке product:language. 
  • introductoryPriceAmount  вступительная цена в минимальных единицах валюты (в копейках). 
  • introductoryPricePeriod  расчетный период вступительной цены. 

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

Структура для сроков периода подписки
USTRUCT(BlueprintType)
struct FURuStoreSubscriptionPeriod
{
    GENERATED_USTRUCT_BODY()
 
    FURuStoreSubscriptionPeriod()
    {
        years = 1970;
        months = 1;
        days = 1;
    }
 
    UPROPERTY(BlueprintReadOnly)
    int years;
 
    UPROPERTY(BlueprintReadOnly)
    int months;
 
    UPROPERTY(BlueprintReadOnly)
    int days;
};
  • years  количество лет. 
  • months  количество месяцев. 
  • days  количество дней. 
Обновлено 17 июля 2023 г.
Was this information helpful?