API Reference

YandexQuickPay

Точка входа в модуль быстрой оплаты.

object YandexQuickPay {
    var locale: QuickPayLocale            // По умолчанию: SYSTEM
    var theme: QuickPayThemeColorScheme   // По умолчанию: SYSTEM
    val isSupported: Boolean              // true если API >= 24
    const val LIBRARY_VERSION: String
}

initialize()

fun initialize(
    config: QuickPayConfig,
    context: Application,
    quickPaymentStateListener: QuickPaymentStateListener
)

Инициализирует модуль. Можно вызывать повторно для смены конфигурации или обновления листенера.

Параметры:

  • config — конфигурация SDK (merchantId, environment)
  • context — Application-контекст
  • quickPaymentStateListener — листенер событий; SDK хранит его как WeakReference

initUi()

suspend fun initUi(activity: FragmentActivity, fragmentManager: FragmentManager)

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

Необходимо вызывать перед getPaymentSessionId() и enableQuickPayment().

isQuickPaymentEnabled()

suspend fun isQuickPaymentEnabled(): IsPaymentEnabled

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

Исключения: IllegalStateException если SDK не инициализирован.

enableQuickPayment()

suspend fun enableQuickPayment(): Result<Unit>

Включает быструю оплату. Может показать экран авторизации Яндекс ID или биометрический запрос.

Исключения: IllegalStateException — если SDK не инициализирован, или если биометрия недоступна (нет аппаратуры, не настроена, устройство заблокировано).

disableQuickPayment()

suspend fun disableQuickPayment(): Result<Unit>

Отключает быструю оплату.

Исключения: IllegalStateException если SDK не инициализирован.

getPaymentSessionId()

suspend fun getPaymentSessionId(): String

Создаёт новую платёжную сессию или возвращает существующую, если срок её действия не истёк.

Возможен биометрический запрос при вызове. Требует предварительного вызова initUi().

Возвращает: строковый идентификатор сессии для генерации QR-кода.

Исключения:

Исключение Условие
RuntimeException("YandexQuickPay must be initialized...") initialize() не вызван
IllegalStateException("Activity not available") initUi() не вызван
IllegalStateException("User is not authorized...") Пользователь не авторизован
RuntimeException("Failed to generate session: ...") Ошибка генерации сессии

getAuthorizationState()

fun getAuthorizationState(): QuickPayAuthorizationState

Возвращает текущее состояние авторизации пользователя. Подробнее о возможных состояниях см. в разделе QuickPayAuthorizationState.

Если SDK не инициализирован, возвращает QuickPayAuthorizationState.NotInitialized.

logout()

fun logout()

Выполняет выход и очищает все сохранённые учётные данные. После вызова потребуется повторная авторизация.


QuickPayConfig

class QuickPayConfig(
    val merchantId: String,
    val environment: QuickPayEnvironment = QuickPayEnvironment.SANDBOX
)

QuickPaymentStateListener

Интерфейс для получения событий быстрой оплаты.

interface QuickPaymentStateListener {
    fun onPaymentEnabledStateChanged(isEnabled: IsPaymentEnabled)
    fun onSessionExpired()
    fun onPaymentResult(quickpayResult: QuickPayResult)
    fun onAuthorizationStateChanged(state: QuickPayAuthorizationState): Unit = Unit
}

Все методы вызываются на Main thread.

Метод Когда вызывается Рекомендуемое действие
onPaymentEnabledStateChanged При включении или выключении быстрой оплаты Если isEnabled.value = true — запросить новую сессию
onSessionExpired При истечении сессии (HTTP 401, код 1004, таймаут) Вызвать getPaymentSessionId()
onPaymentResult По завершении платежа Обработать результат, запросить новую сессию
onAuthorizationStateChanged При изменении состояния авторизации Обновить UI (показать/скрыть кнопку логаута, сменить баннер и т.д.)

QuickPayResult

sealed interface QuickPayResult {
    data object Success : QuickPayResult
    data object Failure : QuickPayResult
}

QuickPayEnvironment

enum class QuickPayEnvironment { SANDBOX, PRODUCTION }

QuickPayLocale

enum class QuickPayLocale { SYSTEM, RU, EN }

QuickPayThemeColorScheme

enum class QuickPayThemeColorScheme { SYSTEM, LIGHT, DARK }

IsPaymentEnabled

@JvmInline
value class IsPaymentEnabled(val value: Boolean)

YandexPaymentMethodsWidget

class YandexPaymentMethodsWidget @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : FrameLayout

Пакет: com.yandex.pay.quickpay.api. Отображает платёжные методы пользователя и элементы управления быстрой оплатой. Публичного API нет — управляется автоматически через SDK.