Домашняя страница
Unreal-плагин RuStore для приёма платежей через сторонние приложения
Плагин RuStoreBillingClient помогает интегрировать в ваш проект механизм оплаты через сторонние приложения (например: SberPay или СБП). Поддерживаются версии Unreal Engine 5.3 и выше.
Установка плагина в свой проект
-
Перейдите в раздел Релизы репозитория проекта на GitFlic.
-
Скачайте из выбранного релиза артефакты:
RuStoreBilling.zipRuStoreCore.zip
-
Распакуйте скачанные архивы в папку
Pluginsв корне вашего Unreal-проекта, чтобы получилась следующая структура:
📁 your_project
└─ 📁 Plugins
├─ 📁 RuStoreBilling
│ ├─ 📁 Binaries
│ ├─ 📁 Content
│ ├─ 📁 Intermediate
│ ├─ 📁 Resources
│ ├─ 📁 Source
│ └─ RuStoreBilling.uplugin
└─ 📁 RuStoreCore
├─ 📁 Binaries
├─ 📁 Content
├─ 📁 Intermediate
├─ 📁 Resources
├─ 📁 Source
└─ RuStoreCore.uplugin
-
Перезапустите Unreal Engine.
-
В списке плагинов (Edit → Plugins → Project → Mobile) отметьте плагины RuStoreBilling и RuStoreCore.
-
Подключите модули
RuStoreCoreиRuStoreBillingв файлеYourProject.Build.csв спискеPublicDependencyModuleNames. -
В настройках проекта (Edit → Project Settings → Android) установите параметр Minimum SDK Version на уровень не ниже 24 и параметр Target SDK Version не ниже 31.
Обработка deeplink
Для корректной работы оплаты через сторонние приложения (СБП, SberPay и др.) необходимо правильно реализовать обработку deeplink.
Плагин RuStore Billing автоматически изменит AndroidManifest.xml: 1. Удалит запускающий intent-filter у GameActivity или SplashActivity. 2. Добавит дополнительную активити RuStoreBillingIntentFilterActivity с intent-filter для запуска приложения и обработки deeplink.
Изменить это поведение можно в файле RuStoreBilling_UPL_Android.xml.
Вашему проекту необходимо реализовать наличие строкового ресурса @string/rustore_app_scheme. Для этого:
- Создайте файл строковых ресурсов с необходимым значением, например,
rustore_billing_values.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="rustore_app_scheme">yourscheme</string>
</resources>
- Добавьте копирование файла в UPL-скрипт вашего проекта:
<?xml version="1.0" encoding="utf-8"?>
<root xmlns:android="http://schemas.android.com/apk/res/android">
<resourceCopies>
<copyFile src="$S(PluginDir)/rustore_billing_values.xml" dst="$S(BuildDir)/res/values/rustore_billing_values.xml" />
</resourceCopies>
</root>
Значение @string/rustore_app_scheme — схема вашего deeplink. Эта схема должна совпадать со схемой, указываемой при инициализации billing-клиента.
Подробнее о настройке deeplink см. в руководстве онлайн.
Инициализация SDK
Перед вызовом методов библиотеки необходимо выполнить её инициализацию.
FURuStoreBillingClientConfig config;
config.consoleApplicationId = "123456";
config.deeplinkScheme = "yourscheme";
config.enableLogs = false;
URuStoreBillingClient::Instance()->Init(config);
Все операции с клиентом также доступны из Blueprints.
consoleApplicationId— идентификатор вашего приложения в RuStore Консоли.deeplinkScheme— схема deeplink, должна совпадать со значением@string/rustore_app_scheme.enableLogs— включение логирования (по умолчаниюfalse).
Package Name приложения должен совпадать с Package Name APK-файла, который вы публиковали в системе RuStore Консоль. Подпись keystore должна совпадать с подписью опубликованного приложения.
Вызов Init() привязывает объект к корню сцены, и если дальнейшая работа с объектом больше не планируется, для освобождения памяти необходимо выполнить метод Dispose().
Подробнее об инициализации см. в руководстве онлайн.
Начните изучение документации библиотеки RuStore с методов класса URuStoreBillingClient. Или воспользуйтесь руководством онлайн.
Техническая поддержка
Дополнительная помощь и инструкции доступны в документации RuStore и по электронной почте support@rustore.ru.
Условия распространения
Данное программное обеспечение, включая исходные коды, бинарные библиотеки и другие файлы, распространяется под лицензией MIT. Информация о лицензировании доступна в документе MIT-LICENSE.