Разделы документации
Документация/Рецепты
Тестовый режим
Магазин-песочница: платежи без провайдера и симуляция исхода
Тестовый режим позволяет проверить интеграцию из конца в конец - создание платежа, платёжную страницу и доставку вебхука - без реальных денег и без участия банка. Для этого в кабинете создаётся отдельный магазин-песочница.
Тестовые платежи не влияют на баланс и выплаты, а исход каждого платежа вы задаёте сами кнопкой на платёжной странице. В аналитику кабинета они входят, но тестовая часть цифр показана отдельным предупреждением - это не реальная выручка.
Шаг 1. Создайте тестовый магазин
В кабинете откройте раздел Магазины, нажмите «Добавить магазин» и выберите вкладку «Тестовый». Магазин активируется сразу, без заявки и модерации - у пользователя он один. Выпустите API-ключ на вкладке «API-ключи» и сохраните Webhook URL на вкладке Webhook, как у боевого магазина. Ненужный тестовый магазин удаляется в его настройках - после этого можно создать новый.
Шаг 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 и рекомендуемая X-Signature-V2 с меткой X-Timestamp (раздел Проверка подписи), так что тестовый режим проверяет и их.
На что обратить внимание
- Исход применяется один раз - после перехода в финальный статус платёж закрыт, повтор любого исхода вернёт ошибку.
- Для боевого приёма платежей заведите обычный магазин: он проходит модерацию, и его платежи уходят провайдеру.