11.0.0 (актуальная версия)
RuStore позволяет интегрировать платежи в мобильное приложение.
-
Если не знаете с чего начать, прочтите инструкцию в сценариях использования.
-
Если вы переходите на Pay SDK с billingClient SDK, ознакомьтесь с инструкцией по переходу. Подробности о Pay SDK можно узнать тут.
Пример реализации
Ознакомьтесь с приложением-примером, чтобы узнать, как правильно интегрировать SDK платежей.
Подключение в проект
Установка плагинов
- Установка через Package Manager
- Установка через .unitypackage
- Клонирование репозитория
Для подключения скачайте со страницы релизов пакеты:
ru.rustore.core-version.tgzru.rustore.pay-version.tgz
Импортируйте пакеты в проект через Package Manager (Window → Package Manager → + → Add package from tarball...).
Для каждого артефакта в релизе доступны файлы контрольных сумм (.sha256) и цифровой подписи (.sig), которые могут использоваться для проверки целостности и подлинности артефакта после скачивания.
Если вы используете операционную систему macOS, измените настройки утилиты архивации. В настройках Archive Utility снимите флажок Keep expanding if possible. В противном случае архив проекта будет скачан некорректно.
Для подключения скачайте файл RuStoreUnityPaySDK-version.unitypackage со страницы релизов и импортируйте его в проект (Assets → Import Package → Custom Package). Зависимости подключаются автоматически с помощью External Dependency Manager (включен в .unitypackage).
Для каждого артефакта в релизе доступ ны файлы контрольных сумм (.sha256) и цифровой подписи (.sig), которые могут использоваться для проверки целостности и подлинности артефакта после скачивания.
Если вы используете операционную систему MacOS, измените настройки утилиты архивации. В настройках Archive Utility снимите флажок Keep expanding if possible. В противном случае архив проекта будет скачан некорректно.
Репозиторий содержит исходный код плагина и демонстрационный проект, содержащий представление работы всех методов SDK.
Не используйте кнопку "Код → Скачать" на сайте GitFlic – этот метод не загружает файлы из Git LFS.
Перед клонированием репозитория скачайте и установите инструменты:
После установки выполните в командной строке:
git lfs install
Для клонирования репозитория воспользуйтесь набором команд:
git clone https://gitflic.ru/project/rustore/unity-rustore-pay-sdk.git
cd unity-rustore-pay-sdk
git lfs pull
Для корректной обработки зависимостей SDK выполните следующие настройки.
-
Откройте настройки проекта: Edit → Project Settings → Player → Android Settings.
-
В pазделе Publishing Settings включите следующие настройки.
- Custom Main Manifest.
- Custom Main Gradle Template.
- Custom Gradle Properties Template.
-
В разделе Other Settings настройте:
- package name.
- Minimum API Level = 24.
- Target API Level = 34.
Подключение зависимостей
- Автоматическое подключение зависимостей
- Ручное подключение зависимостей
Зависимос ти Android-сборки подключаются автоматически с помощью инструмента External Dependency Manager.
Для автоматического решения зависимостей воспользуйтесь командой: Assets → External Dependency Manager → Android Resolver → Force Resolve. Эту операцию следует выполнять каждый раз при добавлении новых версий плагинов или пересоздании файлов Assets / Plugins / Android / mainTemplate.gradle и Assets / Plugins / Android / settingsTemplate.gradle.
-
При установке плагинов RuStore через *.unitypackage External Dependency Manager не требует специальной установки.
-
При установке плагинов RuStore через Package Manager выполните следующие действия:
- Откройте вкладку плагина RuStore Core в окне менеджера пакетов: Window → Package Manager → Packages RuStore → RuStore Core.
- Перейдите на вкладку Samples.
- Импортируйте сэмпл External Dependency Manager.
-
Последнюю версию External Dependency Manager также можно получить из репозитория разработчика на GitHub:
- Откройте окно менеджера пакетов: Window → Package Manager → + → Add package from git URL....
- Используйте ссылку https://github.com/googlesamples/unity-jar-resolver.git?path=/upm для подключения пакета.
- Для устранения ошибки "Google.IOSResolver.dll will not be loaded" установите модуль сборки iOS для вашей версии Unity: UnityHub → Installs → Ваша версия Unity → Add modules → iOS Build Support.
Assembly 'Packages/com.google.external-dependency-manager/ExternalDependencyManager/Editor/1.2.182/Google.IOSResolver.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
- Откройте файл mainTemplate.gradle: Assets / Plugins / Android / mainTemplate.gradle. В секции dependencies добавьте строки:
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
implementation 'ru.rustore.sdk:pay:x.y.z'
Пример оформления секции dependencies:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
implementation 'ru.rustore.sdk:pay:x.y.z'
}
где x.y.z – номер версии пакета SDK.
- Откройте файл settingsTemplate.gradle: Assets / Plugins / Android / settingsTemplate.gradle. В секции dependencyResolutionManagement repositories добавьте строки:
maven {
url "https://artifactory-external.vkpartner.ru/artifactory/maven"
}
Пример оформления секции dependencyResolutionManagement repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
repositories {
google()
mavenCentral()
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
maven {
url "https://artifactory-external.vkpartner.ru/artifactory/maven"
}
mavenLocal()
flatDir {
dirs "${project(':unityLibrary').projectDir}/libs"
}
}
}
Инициализация
- Автоматическая настройка
- Ручная настройка
Для автоматического патча AndroidManifest.xml, необходимому для работы с RuStore Pay Client:
1. Откройте настройки
В Unity выберите: Window → RuStoreSDK → Settings → PayClient. При этом будет автоматически создан и открыт файл PayClientSettings.asset в Inspector.
2. Заполните поля
consoleApplicationId — идентификатор приложения из RuStore консоли.
deeplinkScheme — уникальная схема вашего приложения (например, yourappscheme).
Где в RuStore Консоль отображаются идентификаторы приложений?
- Перейдите на вкладку Приложе ния и выберите нужное приложение.
- Скопируйте идентификатор из URL-адреса страницы приложения — это набор цифр между
apps/и/versions. Например, для URL-адресаhttps://console.rustore.ru/apps/123456/versionsID приложения —123456.

3. Выберите Application Entry Point
В новых версиях Unity параметр Activity по умолчанию установлен в GameActivity. Однако RuStore SDK корректно работает только с UnityPlayerActivity.
Если при выборе в таблице указать GameActivity, платежи будут работать некорректно или завершаться ошибкой.
Убедитесь, что в настройках проекта (Player Settings → Android → Other Settings → Activity) выбрано значение UnityPlayerActivity и в таблице ниже вы также выбираете Activity (com.unity3d.player.UnityPlayerActivity).
Укажите Activity для запуска после обработки диплинка:
| Значение | Класс |
|---|---|
| Activity | com.unity3d.player.UnityPlayerActivity |
| GameActivity | com.unity3d.player.UnityPlayerGameActivity |
| CustomMainActivity | Ваша Activity (укажите в поле Custom Main Activity Class) |
Выбор в этой таблице должен соответствовать значению, установленному в Player Settings → Android → Other Settings → Activity.
4. Выберите Deeplink Activity
Укажите Activity для обработки диплинка:
| Значение | Класс |
|---|---|
| Default | ru.rustore.unitysdk.RuStoreDeeplinkActivityDefault |
| Custom | Ваша Activity (укажите в поле Custom Deeplink Activity Class) |
5. Примените изменения
В секции Android Manifest нажмите:
- Patch Manifest — применить изменения.
- Verify Manifest — проверить корректность
AndroidManifest.xml
Результат в Console:
[RuStore] AndroidManifest.xml patched.— изменения применены.[RuStore] AndroidManifest.xml verified.— манифест настроен корректно.
Что делает Patch Manifest:
- Добавляет
RuStoreDeeplinkActivityDefault(или вашу Custom Deeplink Activity) сintent-filterдля приема диплинка. - Добавляет
meta-dataдля SDK (console_app_id_value,internal_config_key,sdk_pay_scheme_value).
Package Name приложения должен совпадать с Package Name APK-файла, опубликованного в RuStore Консоль.
6. Миграция
Если вы обновили плагин и у вас есть ранее созданный PayClientSettings.asset, при откры тии Window → RuStoreSDK → Settings → PayClient будет автоматически выполнена проверка схемы настроек.
Если файл настроек создан в старой версии плагина (например, в нем отсутствует поле schemeVersion или его значение ниже актуального), откроется окно PayClientSettings Migration с вариантами действий:
- Migrate — создает новый
PayClientSettings.assetактуального формата и переносит в него ваши текущие значения (например,consoleApplicationId,deeplinkScheme, классы Activity). - Delete & Recreate — удаляет старый файл настроек и создает новый с настройками по умолчанию (данные будут потеряны).
- Cancel — оставляет старый файл без изменений (часть функций SDK может работать некорректно до выполнения миграции).
Перед вызовом методов библиотеки необходимо выполнить ее инициализацию. Сама инициализация происходит автоматически, но для работы SDK в вашем файле Manifest.xml необходимо прописать console_app_id_value и internal_config_key. Оба значения должны располагаться внутри тега <application>
<!-- Initializing sdk -->
<meta-data android:name="console_app_id_value" android:value="@string/rustore_PayClientSettings_consoleApplicationId" />
<meta-data android:name="internal_config_key" android:value="@string/rustore_PayClientSettings_internalConfigKey" />
console_app_id_value — идентификатор приложения из RuStore консоли.
Где в RuStore Консоль отображаются идентификаторы приложений?
- Перейдите на вкладку Приложения и выберите нужное приложение.
- Скопируйте идентификатор из URL-адреса страницы приложения — это набор цифр между
apps/и/versions. Например, для URL-адресаhttps://console.rustore.ru/apps/123456/versionsID приложения —123456.

Значение console_app_id_value задается в файле PayClientSettings.assets. Чтобы создать файл PayClientSettings.assets, в меню редактора Unity выберите пункт: Window → RuStore SDK → Settings → PayClient.
Значение internal_config_key задается в файле PayClientSettings.assets автоматически.
Не задавайте значения console_app_id_value и internal_config_key напрямую в манифесте. Строки должны располагаться в файле ресурсов, который генерируется автоматически на основе данных PayClientSettings.assets.
Package Name приложения, указанный в Edit → Project Settings... → Player > Android → Other Settings → Package Name, должен совпадать с Package Name APK-файла, который вы публиковали в системе RuStore Консоль.
Обработка deeplink
Deeplink в RuStore SDK платежей нужна для корректной работы со сторонними приложениями оплаты. Она помогает пользователям быстрее совершать покупки в стороннем приложении и возвращаться в ваше приложение.
Для настройки deeplink в вашем приложении выполните три основных шага:
1. Создайте и настройте класс активити для обработки deeplink.
- Создайте файл
RuStoreIntentFilterActivity.javaи разместите его внутри папкиAssetsвашего проекта. - Реализуйте логику класса
RuStoreIntentFilterActivity, используя приведенный ниже код.