Как подключить RuStore Pay SDK к проекту на Unity

Содержание
Платёжное решение RuStore Pay SDK позволяет добавить в Android-приложение оплату разовых покупок и подписок. Для проектов на Unity SDK доступен в виде плагина, который связывает C#-код проекта с нативной Android-библиотекой RuStore.
В этой статье разберём весь процесс подключения Pay SDK к Unity-проекту: выберем совместимые версии Unity и плагина, подключим необходимые пакеты и зависимости, настроим проект и запустим готовый пример. В конце проверим основные сценарии работы с платежами.
Требования к версии Unity
Начиная с версии 10.2.0 RuStore Pay SDK использует Java 17. Проще всего работать с SDK на Unity 6: необходимая версия JDK уже входит в комплект движка. Примеры в этой статье подготовлены на Unity 6000.0.66f2.
Pay SDK также можно использовать с Unity 2022.3.37f1 и выше: в этих версиях доступен Gradle 7.3 с поддержкой Java 17.
При выборе версии Unity учитывайте исправления безопасности. Не используйте версии ниже 6000.0.58f2 для Unity 6 и 2022.3.62f2 для Unity 2022.3 LTS: более ранние версии содержат уязвимость CVE-2025-59489. Для Unity 2022.3 xLTS исправление доступно начиная с версии 2022.3.67f2.
Подготовка окружения
Для сборки проекта под Android установите модуль Android Build Support для вашей версии Unity вместе с Android SDK, NDK и OpenJDK. Сделать это можно через Unity Hub при установке Unity или позже, добавив необходимые модули к уже установленной версии.
Android Studio для подключения Pay SDK не требуется. Она понадобится, если вы захотите изменить и самостоятельно пересобрать нативную Android-часть плагина или использовать дополнительные инструменты Android-разработки.
Где найти плагины
Исходный код и готовые пакеты плагинов RuStore для Unity опубликованы на GitFlic. Для каждого плагина доступен отдельный репозиторий с исходным кодом, готовыми пакетами и примером проекта.
Для работы Pay SDK понадобятся два пакета:
- ru.rustore.pay — плагин для работы с платежами;
- ru.rustore.core — общая часть, необходимая для работы плагинов RuStore.
Готовые версии пакетов находятся в разделе релизов соответствующего репозитория. Используйте пакеты из последнего стабильного релиза: ветка master может содержать изменения, которые ещё не вошли в опубликованную версию.
Начиная с версии 11.0.0 плагин можно установить через npm-registry, при этом скачивать и подключать пакет вручную не нужно.
Чтобы добавить реестр в Unity:
- Откройте настройки: Edit → Project Settings → Package Manager.
- В разделе Scoped Registries нажмите + и укажите:
- Name: RuStore Nexus
- URL: https://nexus-external.vkteam.ru/repository/npm-unity-rustore-exposed/
- Scopes: ru.rustore
- Откройте Window → Package Manager и выберите RuStore Nexus в списке источников.
- Найдите пакет ru.rustore.pay и нажмите Install. Зависимость ru.rustore.core для работы плагина установится автоматически.
Выбор версии плагина
Рекомендуем использовать последнюю стабильную версию плагина RuStore Pay: новые релизы содержат исправления и обновления API.
Версия Unity-плагина и версия нативного Pay SDK могут отличаться. Плагин включает C#-код, настройки Unity и Android-библиотеку SDK. Проверить, какая версия нативного SDK используется в конкретном релизе плагина, можно в CHANGELOG.md.
Также учитывайте совместимость ru.rustore.pay и ru.rustore.core. Начиная с версии 10.5.0 плагины RuStore обновляются независимо, поэтому номера их версий могут не совпадать. Совместимые версии pay и core указаны в соответствующем релизе.
Для Pay SDK используйте версию не ниже 10.2.0. В более ранних версиях применяется SSL-пиннинг, поэтому после смены сертификата платежная форма может перестать открываться. Начиная с версии 10.2.0 SDK использует системную проверку сертификата, а в версии 11.1 сертификат Минцифры уже встроен в SDK и не требует отдельной установки на устройство.
Подключение плагина
Подключение пакетов
Для подключения Pay SDK используйте Unity Package Manager. Скачайте пакеты ru.rustore.core.tgz и ru.rustore.pay.tgz из раздела релизов, затем поочерёдно добавьте их в проект:
Window → Package Manager → + → Add package from tarball...
Начиная с версии 10.0.0 вместе с пакетами публикуются файлы для проверки их целостности и подлинности: контрольная сумма .sha256 и цифровые подписи .sig. Такая проверка не обязательна для обычного подключения, но позволяет убедиться, что скачанный пакет не был повреждён или подменён.
При необходимости пакет можно подключить и в распакованном виде. Для этого клонируйте репозиторий или распакуйте архив и в Package Manager выберите + → Add package from disk..., затем укажите файл package.json.
Настройка проекта
После подключения пакетов настройте Android-параметры проекта.
Откройте Edit → Project Settings → Player → Android Settings и на вкладке Publishing Settings включите:
- Custom Main Manifest;
- Custom Main Gradle Template;
- Custom Gradle Properties Template.
Затем в разделе Other Settings укажите значения API Level, рекомендованные для вашей версии плагина. Для Pay SDK:
- Minimum API Level — 24;
- Target API Level — 34.
Решение зависимостей
Android-зависимости, необходимые для работы плагинов RuStore, подключаются с помощью External Dependency Manager for Unity.
Его можно установить из официального репозитория Google или использовать версию, которая поставляется вместе с плагинами RuStore. В UPM-пакетах она доступна как сэмпл External Dependency Manager в составе ru.rustore.core.
После установки или обновления пакетов RuStore обновите зависимости проекта:
Assets → External Dependency Manager → Android Resolver → Force Resolve.
Инициализация Pay SDK
Для работы Pay SDK укажите данные приложения:
- consoleApplicationId — ID приложения в RuStore Консоли;
- deeplinkScheme — уникальную схему диплинка.
Откройте Window → RuStoreSDK → Settings → PayClient, заполните поля Console Application Id и Deeplink Scheme, выберите Entry Point Activity и Deeplink Activity, затем нажмите Patch Manifest.
Начиная с версии 10.2.0 в PayClientSettings.asset доступна автоматическая настройка манифеста. При нажатии Patch Manifest плагин добавляет необходимые параметры в AndroidManifest.xml и создаёт values.xml со значениями, которые SDK использует при запуске приложения.
Чтобы проверить настройки, нажмите Verify Manifest. Если манифест настроен правильно, в консоли появится сообщение [RuStore] AndroidManifest.xml verified. Если каких-либо параметров не хватает, плагин выведет их список.
При обновлении плагина может измениться формат PayClientSettings.asset. Если текущая версия файла устарела, плагин предложит перенести настройки в новый формат. Выберите Migrate, чтобы обновить файл и сохранить существующие параметры.
Запуск примера проекта
В репозитории Pay SDK есть готовый пример проекта, на котором можно проверить подключение плагина и основные сценарии работы с платежами. Он находится в папке pay_example.
Перед запуском подготовьте:
- applicationId — уникальный идентификатор Android-приложения;
- keystore — файл ключа для подписи приложения;
- consoleApplicationId — ID приложения в RuStore Консоли;
- productIds — ID разовых покупок и подписок, созданных для приложения;
- deeplinkScheme — уникальную схему диплинка.
Подготовка данных
Если приложения ещё нет в RuStore Консоли, создайте его и загрузите подписанную сборку. applicationId должен совпадать с идентификатором приложения в Консоли, а сборка — быть подписана тем же ключом.
consoleApplicationId можно найти в URL страницы приложения в RuStore Консоли — это числовой ID после apps/.
Чтобы проверить работу платежей, настройте монетизацию и создайте разовые покупки или подписки. Их ID понадобятся при настройке примера. Для тестирования можно использовать тестовые платежи.
Настройка примера приложения
Откройте в Unity проект из папки pay_example и укажите подготовленные данные:
- Откройте Window → RuStoreSDK → Settings → PayClient. В поле Console Application Id укажите consoleApplicationId, а в поле Deeplink Scheme — deeplinkScheme.
- Откройте сцену PayClientSampleScene, выберите объект ExampleController и в массиве Product Ids укажите ID созданных разовых покупок и подписок.
- Перейдите в Edit → Project Settings → Player → Android Settings → Publishing Settings, включите Custom Keystore и укажите файл keystore, пароли и Alias.
- В разделе Other Settings → Identification включите Override Default Package Name и укажите applicationId в поле Package Name.
После настройки соберите проект через File → Build Settings → Build и запустите приложение на Android-устройстве.
Проверка работы платежей
После запуска примера можно проверить основные сценарии работы Pay SDK:
- Availability — проверяет, доступны ли платежи.
- Products — загружает и отображает список созданных продуктов.
- Buy — запускает покупку выбранного продукта и открывает экран выбора способа оплаты.
Проверка диплинка
Проверить работу диплинка можно через браузер. Создайте файл index.html со следующим кодом:
В адресе example://www.ru замените example на значение deeplinkScheme вашего приложения. Хост в данном случае может быть произвольным.
Откройте index.html в браузере на Android-устройстве и перейдите по ссылке Launch. Если диплинк настроен правильно, приложение запустится. Если оно уже открыто, ссылка вернёт пользователя в приложение.
Что дальше
Готовый пример можно использовать как основу для интеграции Pay SDK в собственный проект. В нём реализованы основные сценарии работы с платежами, а описание остальных возможностей SDK и примеры вызова методов можно найти в документации RuStore Pay SDK для Unity.
💙 Мы в MAX



