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

SDK для Android

Обновлено 20 апреля 2022

Как подключить

  1. Скачайте SberBusinessID_SDK_Android.zip, распакуйте и добавьте aar файл в папку libs вашего проекта.
  2. Перейдите в build.gradle вашего модуля.
  3. Добавьте зависимость в раздел dependencies:
implementation fileTree(dir: 'libs', include: ['*.aar'])
  1. Синхронизируйте ваш проект. Все, библиотека подключена.

Как инициализировать аутентификацию через SberBusinessID SDK

  1. Класс LoginManager содержит все методы для работы с аутентификацией по SberBusinessID. Значение параметра client_id можно получить в личном кабинете после заключения договора.

  2. Для инициализации аутентификации используйте метод login. Рекомендуется использовать класс LoginManager.Builder для минимизации ошибок при формировании запроса.

    • Все параметры являются обязательными
    • Подробное описание параметров state, nonce, scope и redicrect_uri можно найти в разделе Authorization code.
//Создание Uri с параметрами для аутентификации, все значения нужно поменять на свои, тут указаны примеры
val builder = LoginManager.Builder(this)
.clientId("584f9xuy05")
.nonce("jecc5kb0tc")
.scopes("openid")
.state("ha6fxegld8")
.redirectUri("app://merchant_app/")
.build()

//Запуск аутентификации по SberbankBusinessID
builder.login()
  1. В результате выполнения метода login произойдет аутентификация пользователя и возврат по диплинку, переданному в поле redirect_uri.

  2. В манифесте приложения необходимо указать схему и хост возвратного deeplink. Они, в свою очередь, должны совпадать со значением redirect_uri, которое вы используете при взаимодействии с ресурсами SberBusinessID.

<activity android:name=".MainActivity">
<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:host="merchant_app"
android:scheme="app" />
</intent-filter>
</activity>
  1. Для получения кода авторизации или информации об ошибке необходимо использовать метод getAuthResult(intent) в LoginManager. Данный метод обработает ответ и вернет сущность AuthResultModel.
val result = builder.getAuthResult(intent)

/**
* Сущность ответа от SberBusinessID
* @property isSuccess true если ответ положительный и вход произведен удачно.
* @property nonce Значение, сгенерированное внешней АС для предотвращения атак
* повторения.
* @property authCode Код авторизации клиента.
* @property errorDescription Текст ошибки.
*/
class AuthResultModel(
var authCode: String? = null,
var nonce: String? = null,
var errorDescription: String? = null
) {
val isSuccess: Boolean
get() = authCode != null
}

6. Обработка intent.

override fun onNewIntent(intent: Intent?) {
super.onNewIntent(savedInstanceState)

val result = manager.getAuthResult(intent)
tvResult.text = result.toString()
}
  1. Для дальнейшей аутентификации необходимо передать полученные значения nonce и authCode на ваш бэкенд для межсерверного взаимодействия с ресурсами SberBusinessID.

Если значение параметра state, сгенерированное вами при формировании запроса, и значение state, возвращенное SberBusinessID, не совпадут, результат будет ошибочным, а в AuthResultModel.errorDescription вернется описание ошибки «invalid_state».

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