Потребление (подтверждение) покупки

RuStore содержит продукты следующих типов:

  • CONSUMABLE  потребляемый (можно купить много раз, например кристаллы в приложении). 

  • NON_CONSUMABLE  непотребляемый (можно купить один раз, например отключение рекламы в приложении). 

  • SUBSCRIPTION  подписка (можно купить на период времени, например подписка в стриминговом сервисе). 

Потребления требуют только продукты типа CONSUMABLE, если они находятся в состоянии PurchaseState.PAID.

Для потребления покупки вы можете использовать метод ConfirmPurchase:

Вызов метода подтверждения
long requestId = RuStoreBillingClient::Instance()->ConfirmPurchase(
    purchaseId,
    [](long requestId, TSharedPtr<FURuStoreError, ESPMode::ThreadSafe> error) {
        // Process error
    },
    [](long requestId, TSharedPtr<FURuStoreConfirmPurchaseResponse, ESPMode::ThreadSafe> response) {
        // Process response
    }
);
  • purchaseId  идентификатор покупки. 

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

image

image

image

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

Ответ метода ConfirmPurchase
USTRUCT(BlueprintType)
struct FURuStoreConfirmPurchaseResponse : public FURuStoreResponseWithCode
{
    GENERATED_USTRUCT_BODY()
};

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

Базовый класс ответа
USTRUCT(BlueprintType)
struct FURuStoreResponseWithCode
{
    GENERATED_USTRUCT_BODY()
 
    FURuStoreResponseWithCode()
    {
        code = 0;
        errorMessage = "";
        errorDescription = "";
    }
 
    UPROPERTY(BlueprintReadOnly)
    int code;
 
    UPROPERTY(BlueprintReadOnly)
    FString errorMessage;
 
    UPROPERTY(BlueprintReadOnly)
    FString errorDescription;
 
    UPROPERTY(BlueprintReadOnly)
    TArray<FURuStoreDigitalShopGeneralError> 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  описание ошибки.
Обновлено 17 июля 2023 г.
Was this information helpful?