QR‑код от Яндекс Пэй для Flutter

Yandex Quick Pay SDK для Flutter позволяет добавить в мобильное приложение виджет быстрой оплаты через Яндекс Пэй. Пользователь один раз авторизуется, после чего может оплачивать покупки в офлайн-точках: приложение генерирует QR-код, который кассир сканирует на терминале.

Пакет: yandex_quick_pay на pub.dev

Требования

Параметр Минимальная версия
Flutter 3.0+
Dart 3.0+
Android API 24+ (Android 7.0)
iOS 15.0+

Перед началом интеграции получите:

Быстрый старт

1. Добавьте зависимость

# pubspec.yaml
dependencies:
  yandex_quick_pay: ^1.1.0
flutter pub get

2. Инициализируйте SDK в main()

import 'package:yandex_quick_pay/yandex_quick_pay.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await YandexQuickPay.initialize(
    config: const QuickPayConfig(
      merchantId: 'YOUR_MERCHANT_ID',
      environment: QuickPayEnvironment.sandbox,
    ),
    listener: QuickPaymentStateListener(
      onPaymentEnabledStateChanged: (isEnabled) {},
      onSessionExpired: () {},
      onPaymentResult: (result) {
        if (result is QuickPaySuccess) {}
        else if (result is QuickPayFailure) {}
      },
    ),
  );

  runApp(const MyApp());
}

3. Вызовите initUi() перед оплатой

await YandexQuickPay.instance.initUi();

4. Добавьте виджеты

// Список способов оплаты
YandexPaymentMethodsWidget()

// Бейдж активного способа оплаты
YandexActivePaymentMethodBadge()

Android: YandexQuickPay.instance.handleUserActivity(uri) или handleOpenURL(uri).

iOS: в AppDelegate передать URL в YandexQuickPay.instance.handleOpenURL(url).

Жизненный цикл платёжной сессии

Сессия действительна до момента, определяемого сервером. При истечении вызывается onSessionExpired() — запросите новую сессию через getPaymentSessionId() и обновите QR.

Когда обновлять QR: при первом отображении экрана, onSessionExpired(), onPaymentResult(), onPaymentEnabledStateChanged(true).

Документация

Следующая