Модульный мобильный SDK

Модульный мобильный SDK Яндекс Пэй построен как один SDK с несколькими независимыми модулями. Каждый модуль отвечает за отдельный пользовательский сценарий: авторизацию, виджет выгод, быструю оплату или платёжный виджет. При интеграции вы подключаете только те пакеты, которые нужны вашему приложению.

Например, если в приложении нужен только виджет выгод, подключите модуль виджета и модуль авторизации. Остальные части SDK не нужно добавлять явно: менеджер зависимостей сам подтянет внутренние библиотеки, которые нужны выбранным модулям.

Как устроены модули

Модуль SDK — это публичная точка входа в конкретный сценарий. Внутри модуля уже собраны нужные экраны, навигация, работа с сетью, аналитика, хранилище и базовые UI-компоненты. Приложение партнёра работает только с публичным API модуля.

В SDK есть два типа зависимостей:

  • Публичные модули — пакеты, которые вы добавляете в приложение напрямую. Например, модуль виджета выгод, модуль авторизации или модуль быстрой оплаты.
  • Внутренние зависимости — технические библиотеки SDK: core, data, entities, адаптеры, ресурсы и UI-компоненты. Они подключаются транзитивно и не требуют отдельной настройки.

Такой подход позволяет расширять интеграцию постепенно. Можно начать с одного виджета, а затем добавить авторизацию, платёжный сценарий или другие модули без замены всего SDK.

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

QR‑код от Яндекс Пэй для быстрой оплаты в офлайн-точках — отдельный публичный модуль модульного SDK. Его можно подключать независимо от других модулей, если приложению нужен только сценарий оплаты по QR-коду на физической кассе.

Android

Android-модули распространяются через Maven Central в группе com.yandex.pay. Каждый публичный сценарий SDK опубликован как отдельный Gradle-артефакт.

Публичные Android-модули SDK доступны как отдельные пакеты:

Пакет Назначение
com.yandex.pay:assistant Виджеты выгод и сценарии ассистента Яндекс Пэй.
com.yandex.pay:auth Авторизация пользователя в Яндекс Пэй и передача состояния авторизации партнёра.
com.yandex.pay:quickpay Быстрая оплата через QR-код в офлайн-точках.

Подключите только нужные модули в build.gradle.kts:

dependencies {
    implementation("com.yandex.pay:assistant:<LATEST_VERSION>")
    implementation("com.yandex.pay:auth:<LATEST_VERSION>")
    implementation("com.yandex.pay:quickpay:<LATEST_VERSION>")
}

Если позже понадобится другой сценарий SDK, добавьте соответствующий артефакт в этот же блок зависимостей. Версии модулей должны быть совместимы между собой, поэтому рекомендуем использовать одну актуальную версию для всех пакетов com.yandex.pay.

Gradle скачает выбранные публичные пакеты и их транзитивные зависимости. Например, модуль assistant подтянет необходимые внутренние части SDK: базовые модели, сетевой слой, навигацию, UI-компоненты и адаптеры. Эти зависимости не нужно перечислять вручную.

После подключения модулей SDK инициализируется один раз в приложении. В список flows передаются те сценарии, которые вы хотите использовать:

YPay.init(
    context = context,
    flows = listOf(
        assistantFlow(merchantId = "<YOUR_MERCHANT_ID>"),
        authFlow(),
    )
) {
    environment = YPayEnvironment.PRODUCTION
    theme = YPayTheme.SYSTEM
    locale = YPayLocale.SYSTEM
}

В коде приложения вы обращаетесь к нужному модулю через общий объект SDK. Например, YPay.assistant отвечает за виджет выгод, а YPay.auth — за авторизацию и состояние пользователя.

iOS

iOS-модули распространяются в формате XCFramework и доступны для подключения через Swift Package Manager и CocoaPods.

Пакет SDK на GitHub: https://github.com/yandexmobile/yandex-pay-modular-sdk-ios.

Публичные iOS-модули SDK доступны как отдельные продукты или пакеты:

Модуль Назначение
YandexPayAuth Авторизация пользователя в Яндекс Пэй и передача состояния авторизации партнёра.
YandexPayAssistant Виджет выгод и сценарии ассистента Яндекс Пэй.
YandexQuickPaySDK Быстрая оплата через QR-код в офлайн-точках.

Swift Package Manager

При подключении через Swift Package Manager в приложении добавляется один пакет SDK, а к таргету подключаются только нужные продукты.

CocoaPods

При подключении через CocoaPods модули SDK добавляются отдельными subspec. Модуль общей конфигурации подключается транзитивно вместе со сценарными модулями, поэтому добавлять его отдельно не нужно.

Подробные инструкции по подключению модульного iOS SDK в README.md в корне GitHub-репозитория.

После инициализации нужные сценарии доступны через общий объект SDK. Например, YPay.instance.assistant создаёт виджет выгод, а YPay.instance.auth управляет авторизацией и состоянием пользователя.