Проверка доступности работы с платежами

Для проверки доступности платежей, вызовите метод CheckPurchasesAvailability. При его вызове проверяются следующие условия:

  1. На устройстве пользователя должен быть установлен RuStore. 
  2. RuStore должен поддерживать функциональность платежей.  
  3. Пользователь должен быть авторизован в RuStore.
  4. Пользователь и приложение не должны быть заблокированы в RuStore.  
  5. Для приложения должна быть включена возможность покупок в системе RuStore Консоль

Если все условия выполняются, в onSuccess возвращается структура FUFeatureAvailabilityResult::isAvailable == true. Иначе, возвращается FUFeatureAvailabilityResult::isAvailable == false, где FUFeatureAvailabilityResult::cause  это ошибка о невыполненном условии. Все возможные ошибки FURuStoreException описаны в разделе «Обработка ошибок». Прочие ошибки (например, «Нет соединения с интернетом») возвращаются в onFailure.

Каждый запрос получает уникальный в рамках одного запуска приложения requestId. Каждое событие возвращает requestId запроса, породившего это событие.

Вызов метода CheckPurchasesAvailability
long requestId = URuStoreBillingClient::Instance()->CheckPurchasesAvailability(
    [](long requestId, TSharedPtr<FURuStoreFeatureAvailabilityResult, ESPMode::ThreadSafe> response) {
        // Process response
    },
    [](long requestId, TSharedPtr<FURuStoreError, ESPMode::ThreadSafe> error) {
        // Process error
    }
);

image

Работая с Blueprints, для обработки ответа, вы должны выполнить подписку на события OnCheckPurchasesAvailabilityResponse и OnCheckPurchasesAvailabilityError.

Пример подписки на событиe OnCheckPurchasesAvailabilityError:

image

Пример подписки на событиe OnCheckPurchasesAvailabilityResponse:

image

Все Blueprint-events в плагине широковещательные. Заданный запрос можно отфильтровать с помощью параметра requestId. Каждый вызов метода CheckPurchasesAvailability возвращает уникальный requestId. Каждый Blueprint-event возвращает requestId породившего его метода.

image

Обновлено 17 июля 2023 г.
Was this information helpful?