Тестирование

Используйте ключ egn_test_…. Тестовые платежи полностью повторяют боевой поток: страница оплаты, QR, смена статусов, вебхуки, возвраты. Деньги при этом не списываются.

Что стоит за test-режимом

Настройка EGN Payprovider в /api/v1/meПоведение
Задан тестовый терминал Т-Банка (…DEMO)tbankПлатёж создаётся в Т-Банке. Оплату эмулирует метод SbpPayTest, статус приходит обычным уведомлением банка
Тестовый терминал не заданemulatorТ-Банк не вызывается. QR содержит фиктивную ссылку НСПК, статус меняется сразу

Симуляция оплаты

На странице тестового платежа есть блок «Тестовый платёж» с кнопками:

  • Симулировать оплату — платёж станет succeeded, придёт payment.succeeded.
  • Отказ — платёж станет failed, придёт payment.failed.

То же самое через API, например в автотестах:

curl -X POST https://pay.egnetwork.ru/api/public/payments/pay_…/simulate \
  -H "Content-Type: application/json" \
  -d '{"outcome":"success"}'     # success | rejected | expired

Для live-платежей метод вернёт 403 live_payment.

Чек-лист перед запуском

  • Платёж создаётся, payment_url открывается
  • Вебхук доходит, подпись проверяется, ответ 2xx
  • Повторный вебхук не выдаёт товар второй раз
  • Повторный POST /payments с тем же order_id не создаёт дубль
  • Страница return_url проверяет статус через API, а не по параметру status
  • payment.expired и payment.failed корректно закрывают заказ
  • Возврат (/refund) отражается у вас в системе
  • Заменили egn_test_ на egn_live_

Markdown-версия этой страницы: /docs/testing.md