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: ...") |
Ошибка генерации сессии |
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)
}
Все методы вызываются на Main thread.
| Метод | Когда вызывается | Рекомендуемое действие |
|---|---|---|
onPaymentEnabledStateChanged |
При включении или выключении быстрой оплаты | Если isEnabled.value = true — запросить новую сессию |
onSessionExpired |
При истечении сессии (HTTP 401, код 1004, таймаут) | Вызвать getPaymentSessionId() |
onPaymentResult |
По завершении платежа | Обработать результат, запросить новую сессию |
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.