Проверка доступности работы с платежами
Для проверки доступности платежей, вызовите метод CheckPurchasesAvailability. При его вызове проверяются следующие условия:
- На устройстве пользователя должен быть установлен RuStore.
- RuStore должен поддерживать функциональность платежей.
- Пользователь должен быть авторизован в RuStore.
- Пользователь и приложение не должны быть заблокированы в RuStore.
- Для приложения должна быть включена возможность покупок в системе RuStore Консоль.
Если все условия выполняются, в onSuccess возвращается структура FUFeatureAvailabilityResult::isAvailable == true. Иначе, возвращается FUFeatureAvailabilityResult::isAvailable == false, где FUFeatureAvailabilityResult::cause — это ошибка о невыполненном условии. Все возможные ошибки FURuStoreException описаны в разделе «Обработка ошибок». Прочие ошибки (например, «Нет соединения с интернетом») возвращаются в onFailure.
Каждый запрос получает уникальный в рамках одного запуска приложения requestId. Каждое событие возвращает requestId запроса, породившего это событие.
long requestId = URuStoreBillingClient::Instance()->CheckPurchasesAvailability( []( long requestId, TSharedPtr<FURuStoreFeatureAvailabilityResult, ESPMode::ThreadSafe> response) { // Process response }, []( long requestId, TSharedPtr<FURuStoreError, ESPMode::ThreadSafe> error) { // Process error } ); |
Работая с Blueprints, для обработки ответа, вы должны выполнить подписку на события OnCheckPurchasesAvailabilityResponse и OnCheckPurchasesAvailabilityError.
Пример подписки на событиe OnCheckPurchasesAvailabilityError:
Пример подписки на событиe OnCheckPurchasesAvailabilityResponse:
Все Blueprint-events в плагине широковещательные. Заданный запрос можно отфильтровать с помощью параметра requestId. Каждый вызов метода CheckPurchasesAvailability возвращает уникальный requestId. Каждый Blueprint-event возвращает requestId породившего его метода.