ym88659208ym87991671
Начало работы | Документация для разработчиков

Начало работы

Обновлено 8 декабря 2025

Минимальная версия Android-платформы для подключения SDK — 24.

Версии SDK которые работают с Android API >=24 - поддерживается всеми версиями. Версии SDK которые работают с Android API <24 - до 2.0.x включительно

Демо-приложение

Демо-приложение с примером интеграции SDK находится по ссылке . Код приложения можно использовать как референс при интеграции.

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

Для получения зависимости из maven репозитория необходимо добавить его в settings.gradle файл вашего приложения.

    dependencyResolutionManagement {
...
repositories {
google()
mavenCentral()
...
⁣ maven {
⁣name = "GitHubPackages"
url = uri("*URL из договора*")
credentials {
⁣ username = "*username для репозитория*"
⁣ password = "*password для репозитория*"
}
}
}
}

Далее нужно перейти в build.gradle вашего модуля и добавить зависимости внутрь блока dependencies { ... }.

    dependencies {
...
implementation '*название зависимости из договора*:x.y.z'
...
}

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

Для инициализации SDK необходимо вызвать метод initialize и передать в него SPaySdkInitConfig

Параметры структуры SPaySdkInitConfig

ПараметрТипДефолтное значениеОбязательныйОписание
enableBnplBooleanfalseНетЕсли параметр не передан, дефолтное значение false. Параметр отвечает за функционал оплаты частями. Значение true не гарантирует, что оплата частями будет доступна, но значение false гарантирует, что оплата частями будет не доступна
stageSPayStage-ДаСтенд с которым будет взаимодействовать SDK. Структура SPayStage
helperConfigSPayHelperConfig-ДаФункционал “Помогашек”. Структура SPayHelperConfig
spasiboBonusesBooleantrueНетФлаг активации функционала бонусов “Спасибо”
resultViewNeededBooleantrueНетОтображение экранов статусов завершения работы SDK
enableLoggingBooleanfalseНетОтображение логов SDK в консоль
enableOutsideTouchCancellingBooleantrueНетВключить завершение работы SDK по тапу вне шторки
initializationResultCallback-ДаБлок результата инициализации SDK

Если вы подключили сервис Плати частями и пользователь выбрал этот способ для оплаты заказа, то выполняя через back расширенный запрос состояния заказа getOderStatusExtended.do, в ответе вы получите значение параметра paymentWay равное BNPL. Подключить параметр paymentWay в callback-уведомлениях возможно в личном кабинете партнера интернет-эквайринга. Это можно сделать в настройках->основные настройки->callback-уведомления. При заполнении доп. параметров выйдет список всех возможных. Для того, чтобы передавался способ оплаты заказа необходимо выбрать paymentWay.

Оплаченные частями заказы в личном кабинете партнера интернет-эквайринга будут отмечаться признаком BNPL в поле «Платежное средство».

При этом денежные средства по заказам, оплаченным частями, поступят от ООО «ЦНФС» («Центр новых финансовых сервисов»), предоставляющей сервис.

Помогашки

Helpers или помогашки - функционал, позволяющий клиенту с недостаточным количеством средств быстро пополнить счет или выпустить новые продукты для оплаты.

Настройки SBHelperConfig

ПараметрТипДефолтное значениеОписание
sbpBooleantrueРазрешить пополнение карты через СБП
creditCardBooleantrueРазрешить выпуск кредитной карты
debitCardBooleantrueРазрешить выпуск дебетовой карты

class YourApplication : Application() {
override fun onCreate() {
super.onCreate()

val config = SPaySdkInitConfig(
enableBnpl = true,
stage = SPayStage.Prod,
helperConfig = SPayHelperConfig(
isHelperEnabled = true,
disabledHelpers = emptyList()
),
resultViewNeeded = true,
enableLogging = false,
spasiboBonuses = true,
enableOutsideTouchCancelling = true,
initializationResult = { initializationResult -> ... }
)

SPaySdkApp.getInstance().initialize(this, config)
}
}

При вызове данного метода подгружается конфиг, который содержит строковые ресурсы и картинки. Если метод был вызван не при старте приложения, то есть шанс, что SDK не успеет получить конфиг, в результате чего кнопка SDK может быть отрисована некорректно или не отрисована вовсе.

Добавление кнопки

Для вызова метода оплаты можно использовать готовый класс кнопки SPayButton или отрисовать кнопку самостоятельно в соответсвии с гайдланами .

Инициализация кнопки оплаты в .xml

    <spay.sdk.view.SPayButton
android:id="@+id/s_pay_button"
android:layout_width="match_parent"
android:layout_height="wrap_content">

Инициализация кнопки оплаты в Composable


@Composable
private fun SPButton() {
val context = LocalContext.current
val customView = SberPayButton(
context = context,
attributeSet = null
)

AndroidView(
modifier = Modifier.fillMaxSize(),
factory = { customView }
)
}

Проверка готовности к оплате

Для проверки готовности сервисов SberPay к оплате необходимо вызывать метод isReadyForSPaySdk.

Метод isReadyForSPaySdk является обязательным для вызова

Кнопка должна быть отрисована только в том случае, если метод isReadyForSPaySdk вернет SdkReadyCheckResult.Ready

Состояние SDK, возвращаемое на вызов метода isReadyForSPaySdk

Проверка установлен ли СБОЛ на устройстве


/**
* Структура состояния готовности SDK к работе. Результат вызова метода isReadyForSPaySdk
*/
sealed class SdkReadyCheckResult {
/**
* Состояние SDK готово к использованию
*/
object Ready : SdkReadyCheckResult()

/**
* Состояние SDK не готово к использованию
*
* @param cause [String] Причина не готовности SDK
*/
data class NotReady(val cause: String) : SdkReadyCheckResult()
}

Запрос разрешений

Для работы SDK также запрашивает определенные разрешения, которые не являются обязательными но повышают шанс успешной оплаты.

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

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

Независимо от результата запроса разрешений от пользователя сценарий оплаты будет продолжен.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера.