Разделы документации
Документация / Рецепты
Тестовый режим
Магазин-песочница: платежи без провайдера и симуляция исхода
Тестовый режим позволяет проверить интеграцию из конца в конец - создание платежа, платёжную страницу и доставку вебхука - без реальных денег и без участия банка. Для этого в кабинете создаётся отдельный магазин-песочница.
Тестовые платежи не влияют на баланс и выплаты, а исход каждого платежа вы задаёте сами кнопкой на платёжной странице. В аналитике кабинета они видны (иначе по магазину-песочнице была бы пустая сводка), но помечены отдельно и не считаются реальной выручкой.
Шаг 1. Создайте тестовый магазин
В кабинете откройте раздел Магазины, нажмите «Добавить магазин» и выберите вкладку «Тестовый». Магазин активируется сразу, без заявки и модерации - у пользователя он один. Выпустите его API-ключ на вкладке Webhook и сохраните Webhook URL, как у боевого магазина. Ненужный тестовый магазин удаляется в его настройках - после этого можно создать новый.
Шаг 2. Создайте платёж
Запрос ничем не отличается от боевого - меняется только ключ. В ответе платёж помечен isTest: true.
curl https://tabpay.org/api/v1/payments \
-H "X-Api-Key: tp_ключ_тестового_магазина" \
-H "Content-Type: application/json" \
-d '{
"amountKopecks": 19900,
"orderId": "test-1",
"description": "Проверка интеграции"
}'{
"id": "6b9d2c88-4f1a-4c0e-9b7d-2f8e5a1c3d90",
"orderId": "test-1",
"status": "CREATED",
"amountKopecks": 19900,
"isTest": true,
"payUrl": "https://tabpay.org/pay/6b9d2c88-4f1a-4c0e-9b7d-2f8e5a1c3d90"
}Шаг 3. Задайте исход на платёжной странице
Откройте payUrl в браузере. Вместо выбора СБП или карты страница покажет три кнопки:
- Оплатить - платёж переходит в
SUCCESS, уходит вебхук. - Отклонить - платёж переходит в
FAILED. - Просрочить - платёж переходит в
EXPIRED.
Провайдер в тестовом режиме не участвует - деньги не двигаются. Полный список статусов - в разделе Статусы платежа.
Шаг 4. Примите вебхук
После выбора «Оплатить» (или другого исхода) TabPay отправит вебхук на URL магазина. Тело идентично боевому, но содержит test: true - боевой обработчик может по нему отличать симуляцию:
{
"id": "6b9d2c88-4f1a-4c0e-9b7d-2f8e5a1c3d90",
"orderId": "test-1",
"status": "SUCCESS",
"amountKopecks": 19900,
"telegramId": null,
"metadata": null,
"test": true
} Подпись X-Signature считается тем же алгоритмом, что и в бою (раздел Проверка подписи), так что тестовый режим проверяет и её.
На что обратить внимание
- Тестовые платежи не попадают в баланс и не участвуют в выплатах. В сводке аналитики кабинета они отображаются с пометкой «тестовые» (в реальную выручку не входят).
- Один и тот же исход нельзя применить дважды - после перехода в финальный статус платёж закрыт (повтор вернёт ошибку).
- Для боевого приёма платежей заведите обычный магазин: он проходит модерацию, и его платежи уходят провайдеру.