Вы можете ознакомиться с разделом «Быстрый старт» для быстрой интеграции платежей в приложение.
Пример реализации
Чтобы узнать как правильно интегрировать платежи, ознакомьтесь с приложением-примером.
Условия работы платежей
Для работы проведения платежей необходимо соблюдение всех условий:
- На устройстве пользователя установлено приложение RuStore.
- Приложение RuStore поддерживает функциональность платежей.
- Пользователь авторизован в приложении RuStore.
- Пользователь и приложение не должны быть заблокированы в RuStore.
- Для приложения включена возможность покупок в системе RuStore Консоль.
Добавление репозитория
Подключите репозиторий:
Подключение зависимости
Добавьте следующий код в свой конфигурационный файл для подключения зависимости:
dependencies { implementation( "ru.rustore.sdk:billingclient:0.1.5" ) } |
Обработка deeplink
Для возвращения в ваше приложение после оплаты через сторонние приложения (СБП, SberPay и другие) необходимо правильно реализовать обработку deeplink. Укажите в AndroidManifest.xml intent-filter с scheme вашего проекта:
< activity android:name = ".sample.MainActivity" > < 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 = "yourappscheme" /> </ intent-filter > </ activity > |
где «yourappscheme» — схема вашего deeplink, может быть изменена на другую.
Эта схема должна совпадать с параметром deeplinkScheme, передаваемым в init().
Далее в Activity, в которую необходимо вернуться после совершения оплаты (ваша страница магазина), нужно добавить:
override fun onCreate(savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) if (savedInstanceState == null ) { RuStoreBillingClient.onNewIntent(intent) } } override fun onNewIntent(intent: Intent?) { super .onNewIntent(intent) RuStoreBillingClient.onNewIntent(intent) } |
Для восстановления состояния вашего приложения при возврате с deeplink, необходимо добавить в AndroidManifest.xml: android:launchMode="singleTask"
<activity android:name= ".sample.main.MainActivity" android:launchMode= "singleTask" android:exported= "true" android:screenOrientation= "portrait" android:windowSoftInputMode= "adjustResize" > |
Инициализация
Перед вызовом методов библиотеки необходимо выполнить ее инициализацию.
Добавьте следующий код в Application вашего проекта:
class App : Application() { override fun onCreate() { super .onCreate() RuStoreBillingClient.init( application = this , consoleApplicationId = "111111" , deeplinkScheme = "yourappscheme" ) } } |
- application — экземпляр класса application приложения.
- consoleApplicationId — код приложения из консоли разработчика RuStore (пример: https://console.rustore.ru/apps/111111).
- deeplinkScheme — cхема deeplink, необходимая для возврата в ваше приложение после оплаты через стороннее приложение (например, SberPay или СБП). SDK генерирует свой хост к данной схеме.
Важно, чтобы схема deeplink, передаваемая в deeplinkScheme, совпадала со схемой, указанной в AndroidManifest.xml в разделе «Обработка deeplink».
Если вам нужно проверить факт инициализации библиотеки, используйте RuStoreBillingClient.isInitialized, возвращающий true, если библиотека инициализирована, и false, если init еще не был вызван.
val isInitialized: Boolean = RuStoreBillingClient.isInitialized |
Библиотека поддерживает логирование событий, которое подключается отдельно при инициализации библиотеки.