10.1.0 (актуальная версия)
RuStore позволяет интегрировать платежи в мобильное приложение.
-
Если не знаете с чего начать, прочтите инструкцию в сценариях использования.
-
Если вы переходите на Pay SDK с billingClient SDK, ознакомьтесь с инструкцией по переходу. Подробности о Pay SDK можно узнать тут.
Пример реализации
Ознакомьтесь с проектом-примером, чтобы узнать, как правильно интегрировать SDK платежей.
Подключение в проект
Клонирование репозитория
Репозиторий содержит исходный код плагина и демонстрационный проект, содержащий представление работы всех методов SDK.
Не используйте кнопку "Код → Скачать" на сайте GitFlic – этот метод не загружает файлы из Git LFS.
Перед клонированием репозитория скачайте и установите инструменты:
После установки выполните в командной строке:
git lfs install
Для клонирования репозитория воспользуйтесь набором команд:
git clone https://gitflic.ru/project/rustore/construct-rustore-pay.git
cd construct-rustore-pay
git lfs pull
Установка плагинов
Для сборки Android-приложения и работы с нативными функциями ОС Construct использует фреймворк Cordova.
- Убедитесь, что у вас установлен фреймворк Cordova версии не ниже 12.0.0.
cordova -v
- Перейдите в корневую папку вашего Cordova-проекта и выполните команду:
cordova plugin add /путь_к_папке_плагина/ru.rustore.pay
- После установки проверьте наличие плагина с помощью команды:
cordova plugin list
В списке должен появиться плагин ru.rustore.pay.
- Плагин требует, чтобы вы разместили свои данные для инициализации в файле
rustore_pay_strings.xmlрасположенном в папкеru.rustore.pay / src / android / res / values.
Создайте или отредактируйте этот файл, поместив туда необходимые параметры инициализации плагина.
-
После установки плагин автоматически добавит теги
<meta-data>и дополнительную активитиRuStoreIntentFilterActivityвAndroidManifest.xmlв папкеваш_cordova_проект / platforms / android / app / src / main. -
В файле
AndroidManifest.xmlнайдите активитиMainActivityи удалите у неё тег<intent-filter>содержащийMAINиLAUNCHER, чтобы она больше не запускалась как стартовая. Новая активитиRuStoreIntentFilterActivity, добавленная плагином, обязательно должна быть основной.
Пример готового манифеста:
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="10000" android:versionName="1.0.0" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">
<!-- Game activity -->
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation" android:exported="true" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@style/Theme.App.SplashScreen" android:windowSoftInputMode="adjustResize">
<!-- Starting intent-filter
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
<provider android:authorities="${applicationId}.cdv.core.file.provider" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/cdv_core_file_provider_paths" />
</provider>
<!-- Deeplink Scheme -->
<meta-data android:name="sdk_pay_scheme_value" android:value="@string/rustore_PayClientSettings_deeplinkScheme" />
<!-- 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" />
<!-- Deeplink Activity -->
<activity android:exported="true" android:name="ru.rustore.paybridge.RuStoreIntentFilterActivity" android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/rustore_PayClientSettings_deeplinkScheme" />
</intent-filter>
</activity>
</application>
<queries>
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
</queries>
</manifest>
Инициализация
Перед вызовом методов библиотеки необходимо выполнить её инициализацию. Сама инициализация происходит автоматически, но для работы SDK в вашем файле AndroidManifest.xml будут автоматически добавлены console_app_id_value, internal_config_key и sdk_pay_scheme_value. Все теги плагин добавит автоматически.
<!-- 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" />
<!-- Deeplink Scheme -->
<meta-data android:name="sdk_pay_scheme_value" android:value="@string/rustore_PayClientSettings_deeplinkScheme" />
Значения тегов задаюся в файле rustore_pay_strings.xml расположенном в папке ru.rustore.pay / src / android / res / values.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="rustore_PayClientSettings_consoleApplicationId" translatable="false">1234567890</string>
<string name="rustore_PayClientSettings_internalConfigKey" translatable="false">construct</string>
<string name="rustore_PayClientSettings_deeplinkScheme" translatable="false">yourappscheme</string>
</resources>
consoleApplicationId — идентификатор приложения из RuStore консоли.
internalConfigKey — всегда должно иметь значение construct.
deeplinkScheme — уникальная схема deeplink.
Где в RuStore Консоль отображаются идентификаторы приложений?
- Перейдите на вкладку Приложения и выберите нужное приложение.
- Скопируйте идентификатор из URL-адреса страницы приложения — это набор цифр между
apps/и/versions. Например, для URL-адресаhttps://console.rustore.ru/apps/123456/versionsID приложения —123456.

Package Name и подпись Cordova-приложения, должены совпадать с Package Name и подписью приложения, которое вы публиковали в системе RuStore Консоль.
Не задавайте значения console_app_id_value и internal_config_key напрямую в манифесте. Строки должны располагаться в файле ресурсов.