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

Скачайте Unity-плагин для подключения платежей по ссылке

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

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

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

Подключение в проект

Для подключения необходимо скачать RuStore Billing SDK и импортировать его в проект (Assets → Import Package → Custom Package). Зависимости подключаются автоматически с помощью External Dependency Manager (включен в SDK).

Minimum API level должен быть установлен не ниже 24. Минификация приложения (ProGuard/R8) не поддерживается. Отключите её в настройках проекта (File → Build Settings → Player Settings → Publishing Settings → Minify).

При оплате пользователем через SberPay происходит переход в приложение Сбербанк. После завершения оплаты должен быть переход обратно в приложение с помощью deeplink. Для обработки 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, может быть изменена на другую.

Далее в Activity нужно добавить:

public class SampleActivity extends UnityPlayerActivity {
 
    @Override protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        RuStoreUnityBillingClient.onNewIntent(intent);
    }
}

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

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

var config = new RuStoreBillingClientConfig() {
    consoleApplicationId = "11111",
    deeplinkPrefix = "yourappscheme",
    allowNativeErrorHandling = true,
    enableLogs = true
};
 
RuStoreBillingClient.Instance.Init(config);
  • consoleApplicationId — код приложения из системы RuStore Консоль. (пример: https://console.rustore.ru/apps/111111);
  • deeplinkPrefix — url для использования deeplink. В качестве названия может быть использовано любое уникальное имя (пример: yourappscheme);
  • allowNativeErrorHandling — разрешить обработку ошибок в нативном SDK (см. подробнее в разделе Обработка ошибок);
  • enableLogs — включить логи.

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

Если вам нужно проверить факт инициализации библиотеки, используйте свойство RuStoreBillingClient.Instance.isInitialized, его значение true, если библиотека инициализирована, и false, если Init еще не был вызван.

var isInitialized = RuStoreBillingClient.Instance.IsIninialized;
Обновлено 12 апреля 2023 г.
Was this information helpful?