Вы можете ознакомиться с разделом для быстрой интеграции платежей в приложение.
Пример реализации
Ознакомьтесь с приложением-примером чтобы узнать, как правильно интегрировать платежи.
Условия работы платежей
Для работы проведения платежей необходимо соблюдение всех условий:
- На устройстве пользователя установлено приложение RuStore.
- Приложение RuStore поддерживает функциональность платежей.
- Пользователь авторизован в приложении RuStore.
- Пользователь и приложение не должны быть заблокированы в RuStore.
- Для приложения включена возможность покупок в системе RuStore Консоль.
Сервис имеет некоторые ограничения на работу за пределами РФ.
Добавление репозитория
Подключите репозиторий:
Подключение зависимости
Добавьте следующий код в свой конфигурационный файл для подключения зависимости:
< 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 protected void onCreate( @Nullable Bundle savedInstanceState) { super .onCreate(savedInstanceState); if (savedInstanceState == null ) { RuStoreBillingClient.INSTANCE.onNewIntent(getIntent()); } } @Override protected void onNewIntent(Intent intent) { super .onNewIntent(intent); RuStoreBillingClient.INSTANCE.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 вашего проекта:
public class App extends Application { @Override public void onCreate() { super .onCreate(); Application application = this ; String consoleApplicationId = "111111" ; String deeplinkScheme = "yourappscheme" ; RuStoreBillingClient.INSTANCE.init(application, consoleApplicationId, deeplinkScheme); } } |
- 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 еще не был вызван.
Boolean isInitialized = RuStoreBillingClient.INSTANCE.isInitialized(); |
Библиотека поддерживает логирование событий, которое подключается отдельно при инициализации библиотеки.