Модуль «CP QR» для Flutter управляет авторизацией пользователя в виджете быстрой оплаты через Яндекс Пэй, созданием платежной сессии и обработкой статуса оплаты. SDK возвращает sessionId, на основе которого приложение генерирует и отображает QR-код для оплаты на кассе.
Платежная сессия ограничена по времени (expires_at, задается сервером). Когда сессия истекает, SDK вызывает onSessionExpired(). В этом случае нужно:
запросить новые данные для QR-кода через getCPQR(merchantPayload) или getPaymentSessionId();
обновить QR-код на экране.
SDK предоставляет два способа получения данных для QR-кода:
getCPQR(merchantPayload) — возвращает готовую строку CP QR в формате YAQR<payload>, если нужно передать собственные данные (например, токен программы лояльности);
getPaymentSessionId() — возвращает sessionId, на основе которого приложение формирует QR-код. Метод устарел (deprecated), используйте getCPQR(merchantPayload).
Когда обновлять QR: при первом отображении экрана, onSessionExpired(), onPaymentResult(), onPaymentEnabledStateChanged(true).