Действия оплаты
Поле action объекта платежа — провайдер‑нейтральное действие, которое клиент выполняет, чтобы оплатить. Это дискриминированный union: разбирайте по полю type и игнорируйте неизвестные будущие типы.
Возможные значения: null, qr, redirect.
action: null
Действие отсутствует. Причины (в рамках контракта): действие ещё не подготовлено, истекло, либо платёж находится в состоянии, где действие не показывается (в т.ч. финальное или outcome_unknown — безопасное скрытие). Не рассчитывайте, что опрос обязательно приведёт к появлению действия.
QR‑действие
{
"action": {
"type": "qr",
"value": "<непрозрачное значение>",
"expires_at": "2024-09-05T12:05:00Z"
}
}value— непрозрачный платёжный материал для клиента. Не разбирайте и не интерпретируйте его.expires_at— срок действия (может бытьnull).
Безопасность QR
- Не декодируйте и не пытайтесь понять содержимое
value. - Не отправляйте
valueв сторонние онлайн‑сервисы генерации QR. - Если отображаете QR — используйте доверенный локальный рендерер на вашей стороне.
- Не логируйте и не сохраняйте
valueбез необходимости; это материал платёжной сессии.
Redirect‑действие
{
"action": {
"type": "redirect",
"url": "https://example.com/pay/session",
"expires_at": "2024-09-05T12:05:00Z"
}
}url— HTTPS‑адрес назначения для клиента. Используйте как есть.expires_at— срок действия (может бытьnull).
Не изменяйте и не «дописывайте» параметры к url, если этого явно не требует ваш сценарий оформления. Не делайте предположений о структуре URL провайдера.
Истечение действия
После expires_at при GET действие может вернуться как null, тогда как финансовый status платежа остаётся своим. Истечение или скрытие действия не означает автоматически неуспех платежа — сверяйтесь по status (см. Сверка).