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
}
Была ли статья полезна?
Предыдущая
Следующая