Общая информация

Вы можете ознакомиться с разделом для быстрой интеграции платежей в приложение.

Пример реализации

Ознакомьтесь с приложением-примером чтобы узнать, как правильно интегрировать платежи.

Условия работы платежей

Для работы проведения платежей необходимо соблюдение всех условий:

  1. На устройстве пользователя установлено приложение RuStore. 
  2. Приложение RuStore поддерживает функциональность платежей.
  3. Пользователь авторизован в приложении RuStore.
  4. Пользователь и приложение не должны быть заблокированы в RuStore.
  5. Для приложения включена возможность покупок в системе RuStore Консоль.

Сервис имеет некоторые ограничения на работу за пределами РФ.

Добавление репозитория

Подключите репозиторий:

repositories {
    maven {
    }
}

Подключение зависимости

Добавьте следующий код в свой конфигурационный файл для подключения зависимости:

dependencies {
    implementation("ru.rustore.sdk:billingclient:1.1.1")
}

Инициализация 

Перед вызовом методов библиотеки необходимо выполнить ее инициализацию.

Создайте RuStoreBillingClient, используя RuStoreBillingClientFactory.create():

val billingClient: RuStoreBillingClient = RuStoreBillingClientFactory.create(
      context = app,
      consoleApplicationId = "111111",
      deeplinkScheme = "yourappscheme"
)

  • context — контекст Android. Может быть любым, в реализации используется applicationContext.

  • consoleApplicationId — код приложения из консоли разработчика RuStore (пример: https://console.rustore.ru/apps/111111).

  • deeplinkScheme — cхема deeplink, необходимая для возврата в ваше приложение после оплаты через стороннее приложение (например, SberPay или СБП). SDK генерирует свой хост к данной схеме.

Важно, чтобы схема deeplink, передаваемая в deeplinkScheme, совпадала со схемой, указанной в AndroidManifest.xml в разделе «Обработка deeplink».

Библиотека поддерживает логирование событий, которое подключается отдельно при инициализации библиотеки.

Для корректной работы оплаты через сторонние приложения (СБП или SberPay), вам необходимо правильно реализовать обработку deeplink. Для этого необходимо указать в AndroidManifest.xml intent-filter с scheme вашего проекта:

<activity
    android:name=".YourBillingActivity">
 
    <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, в которую необходимо вернуться после совершения оплаты (ваша страница магазина), нужно добавить:

class YourBillingActivity: AppCompatActivity() {
     
    // Previously created with RuStoreBillingClientFactory.create()
    private val billingClient: RuStoreBillingClient = YourDependencyInjection.getBillingClient()
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        if (savedInstanceState == null) {
            billingClient.onNewIntent(intent)
        }
    }
 
    override fun onNewIntent(intent: Intent?) {
        super.onNewIntent(intent)    
        billingClient.onNewIntent(intent)
    }
}

Для восстановления состояния вашего приложения при возврате с deeplink необходимо добавить в AndroidManifest.xml: 

android:launchMode="singleTask"

<activity
         android:name=".YourBillingActivity"
         android:launchMode="singleTask"
         android:exported="true"
         android:screenOrientation="portrait"
         android:windowSoftInputMode="adjustResize">

Обновлено 3 мая 2023 г.
Was this information helpful?