API Reference

YandexQuickPay

Главный класс SDK. Синглтон — доступ через YandexQuickPay.instance после вызова initialize().

public final class YandexQuickPay {
    static var instance: YandexQuickPay { get }
    static var isInitialized: Bool { get }

    static func initialize(
        configuration: QuickPayConfig,
        presenterViewController: UIViewController?,
        quickPaymentStateListener: QuickPaymentStateListener
    )

    func handleOpenURL(_ url: URL) -> Bool
    func handleUserActivity(_ userActivity: NSUserActivity) -> Bool

    func isQuickPaymentEnabled() async throws -> Bool
    func enableQuickPayment() async throws
    func disableQuickPayment() async throws
    func getPaymentSessionId() async throws -> String
    func logout() async throws

    @MainActor func createPaymentMethodsWidget() -> UIView
    @MainActor func createPaymentMethodsWidget() -> any View
}
Метод/свойство Описание
instance Экземпляр SDK (после initialize()). Вызов с Main thread.
isInitialized Проверка инициализации
initialize(configuration:presenterViewController:quickPaymentStateListener:) Инициализация SDK
handleOpenURL(_:) Передаёт URL-схему в SDK (OAuth). Вызывайте из AppDelegate/SceneDelegate
handleUserActivity(_:) Передаёт Universal Link в SDK (OAuth)
isQuickPaymentEnabled() Проверяет, включена ли быстрая оплата
enableQuickPayment() Включает быструю оплату
disableQuickPayment() Отключает быструю оплату
getPaymentSessionId() Создаёт или возвращает платёжную сессию
logout() Выход, очистка данных (async)
createPaymentMethodsWidget() Виджет методов оплаты (UIKit / SwiftUI)

QuickPayConfig

Конфигурация SDK.

public struct QuickPayConfig {
    public init(
        merchantId: String,
        locale: QuickPayLocale = .system,
        environment: QuickPayEnvironment = .production,
        theme: QuickPayThemeColorScheme = .system,
        enableLogging: Bool = false
    )
}
Параметр По умолчанию Описание
merchantId Идентификатор магазина
locale .system Язык интерфейса
environment .production .sandbox или .production
theme .system Цветовая схема виджета
enableLogging false Debug-логирование

QuickPaymentStateListener

Протокол для получения событий. Только для классов (AnyObject).

public protocol QuickPaymentStateListener: AnyObject {
    func onPaymentEnabledStateChanged(isEnabled: Bool)
    func onSessionExpired()
    func onPaymentResult(quickpayResult: QuickPayResult)
}

Колбэки могут вызываться не на Main thread. Обновление UI — через DispatchQueue.main.async.

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

FintechQuickPaymentError

public enum FintechQuickPaymentError: Error {
    case noAuth
    case cannotAuth
    case cannotCreateNewSession(underlying: Error)
    case noPresentationContext
}
Вариант Описание
.noAuth Пользователь не авторизован
.cannotAuth Авторизация невозможна (нет контекста, отказ)
.cannotCreateNewSession(underlying:) Ошибка создания сессии (сеть, сервер)
.noPresentationContext Нет активного ViewController для показа UI

QuickPayEnvironment

public enum QuickPayEnvironment {
    case sandbox
    case production
}

QuickPayLocale

public enum QuickPayLocale {
    case system
    case ru
    case en
}

QuickPayThemeColorScheme

public enum QuickPayThemeColorScheme {
    case system
    case light
    case dark
}

QuickPayResult

public enum QuickPayResult {
    case success
    case failure
}