Yandex Quick Pay SDK for Flutter

Flutter-плагин для интеграции быстрой оплаты Яндекс Пэй в мобильные приложения (Android и iOS).

Установка

Добавьте зависимость в pubspec.yaml:

dependencies:
  yandex_quick_pay: ^1.0.0

Затем:

flutter pub get

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

  1. Инициализация в main() до runApp():
import 'package:yandex_quick_pay/yandex_quick_pay.dart';

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

  // Инициализация SDK
  await YandexQuickPay.initialize(
    config: const QuickPayConfig(
      merchantId: 'YOUR_MERCHANT_ID',
      environment: QuickPayEnvironment.sandbox,
    ),
    listener: QuickPaymentStateListener(
      onPaymentEnabledStateChanged: (isEnabled) {
        print('Быстрая оплата ${isEnabled ? "включена" : "выключена"}');
      },
      onSessionExpired: () {
        print('Платежная сессия истекла');
      },
      onPaymentResult: (result) {
        if (result is QuickPaySuccess) {
          print('Оплата успешна');
        } else if (result is QuickPayFailure) {
          print('Ошибка оплаты');
        }
      },
    ),
  );

  runApp(const MyApp());
}
  1. Вызов нативной UI перед оплатой:
await YandexQuickPay.instance.initUi();
  1. Виджеты для экрана настроек/оплаты:
  • YandexPaymentMethodsWidget — список способов оплаты и управление быстрой оплатой.
  • YandexActivePaymentMethodBadge — бейдж активного способа оплаты (например, на кнопке «Оплатить»).

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

  • QuickPayConfig: merchantId, environment (sandbox/production), locale, theme.
  • QuickPayEnvironment: sandbox, production.

Обработка возврата из приложения банка/Яндекс Пэй:

  • Android: в AndroidManifest и в коде вызвать YandexQuickPay.instance.handleUserActivity(uri) или handleOpenURL(uri).
  • iOS: в AppDelegate передать URL в YandexQuickPay.instance.handleOpenURL(url).

Требования

  • Flutter 3.0+
  • Dart 3.0+
  • Android: API 24+ (Android 7.0)
  • iOS: 15.0+

Сборка example-приложения

1. Сборка нативного Android SDK

Перед сборкой example-приложения необходимо собрать нативный Android SDK:

# Для debug-сборки
scripts/bundle_native_android_sdk.sh --build-type debug --with-init

# Для production-сборки
scripts/bundle_native_android_sdk.sh --build-type prod --with-init

2. Выбор окружения

Окружение задаётся через --dart-define=QUICKPAY_ENVIRONMENT при сборке. Доступные значения: sandbox, testing, production.

# Sandbox (по умолчанию для debug)
flutter run --dart-define=QUICKPAY_ENVIRONMENT=sandbox

# Testing
flutter run --dart-define=QUICKPAY_ENVIRONMENT=testing

# Production (по умолчанию для release)
flutter run --release --dart-define=QUICKPAY_ENVIRONMENT=production

3. Настройка в Android Studio

  1. Откройте Run > Edit Configurations...
  2. Выберите конфигурацию запуска Flutter или создайте новую
  3. В поле Additional run args добавьте:
    --dart-define=QUICKPAY_ENVIRONMENT=sandbox
    
  4. Нажмите Apply

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

Полная документация и описание API: pay.yandex.ru/docs.

Лицензия

Proprietary License — см. LICENSE.

Libraries

yandex_quick_pay