/SDK

SDK для подключения к каналу SberApi

Primary LanguageJavaApache License 2.0Apache-2.0

SDK для интеграции с API Сбербанка

Сборка библиотеки

Для сборки джарников необходимо запусть команду ```bash ./gradlew :build-src:clean :build-src:buildInstantPayment :build-src:buildH2h ``` Собранные fatJar будут лежать по пути build-src/build/libs. Их можно подключить себе в проект, либо перенести отдельные модули в свой код.

🔧 Подготовка к работе

  • Требования: Java 1.8+
  • Сертификаты:
    • Добавьте банковский сертификат в хранилище JDK:
      keytool -importcert -alias <alias> -file <cert_path> -keystore <path_to_cacerts> -storepass changeit
    • Или укажите путь к сертификату при создании HttpClientFactory

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

Gradle

repositories {
    flatDir {
        dirs("/path/to/SDK/") 
    }
}

dependencies {
implementation("ru.sberbank.sbbol.sberbusinessapi:sdk-instantpayment:release-1.0.0-SNAPSHOT") implementation("ru.sberbank.sbbol.sberbusinessapi:sdk-h2h:release-1.0.0-SNAPSHOT") }

Maven

<repositories>
    <repository>
        <id>local-sdk-repo</id>
        <url>file:///path/to/SDK/</url>
    </repository>
</repositories>

<dependencies> <dependency> <groupId>ru.sberbank.sbbol.sberbusinessapi</groupId> <artifactId>sdk-instantpayment</artifactId> <version>release-1.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>ru.sberbank.sbbol.sberbusinessapi</groupId> <artifactId>sdk-h2h</artifactId> <version>release-1.0.0-SNAPSHOT</version> </dependency> </dependencies>

Модуль авторизации

Инициализация клиента

HttpClientFactory httpClientFactory = HttpClientFactory.of()
        .host("https://auth-server.url")
        .customCertPath("/path/to/cert.p12")
        .customCertPassword("password")
        .build();

AuthorizationApiClient authClient = new AuthorizationApiClientImpl(httpClientFactory);

Основные методы

Метод Описание
getAccessToken() Получение токена доступа
getRefreshToken() Обновление токена
changeClientSecret() Смена секрета клиента
revokeToken() Отзыв токена
getUserInfo() Информация о пользователе

Модуль моментальных платежей

Создание платежа

InstantPaymentApi paymentsApi = new InstantPaymentApiImpl(httpClientFactory);

PaymentInvoiceRequest request = PaymentInvoiceRequest.builder() .amount(100.50f) .payeeAccount("40702810...") .build();

PaymentInvoiceResponse response = paymentsApi.createPaymentInvoice(accessToken, request);

Генерация URL для подписания

String url = paymentsApi.buildPaymentUrl(
    externalId, 
    "https://callback.url", 
    CryptoprofileType.SMS, 
    "https://bank-host", 
    false
);

🖥️ Модуль H2H

Работа с платежами

H2hApi h2hApi = new H2hApiImpl(httpClientFactory);

// Создание платежного поручения FintechPayment payment = h2hApi.createPayment(accessToken, paymentRequest);

// Получение статуса FintechPaymentDocState state = h2hApi.getPaymentDocState(accessToken, externalId);

Управление сертификатами

Метод Описание
certificateRequest() Запрос нового сертификата
activateCert() Активация сертификата
getCertState() Проверка статуса сертификата

✨ Дополнительные возможности

  • Генерация PKCE-кодов для OAuth
  • Работа с зарплатными ведомостями
  • Получение выписок по счетам

Тестовые сертификаты:
Используйте russiantrustedca.pem для тестового окружения.

📚 Документация по интеграции с API Сбербанка (HTML)

<style> pre { background-color: #f6f8fa; border-radius: 6px; padding: 16px; } table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid #dfe2e5; padding: 6px 13px; } th { background-color: #f6f8fa; } blockquote { border-left: 4px solid #dfe2e5; color: #6a737d; padding: 0 1em; margin: 0; } </style>