- Тестовые мерчантские учетные данные ключи, логины, токены
- Отдельные API endpoints, зачастую с другим доменом
- Стаб или эмулятор 3DS и риск‑проверок
- Доставка тестовых вебхуков на ваш тестовый URL
Важно обеспечить разделение секретов и логов. Храните sandbox и prod ключи отдельно, а для вызовов используйте явные флаги окружения.
![Диаграмма песочницы эквайринга и вебхуков]()
Тестовые карты и сценарии оплаты
Тестовые карты это специально выпущенные номера карт для проверки сценариев в песочнице. Они позволяют получить предсказуемый результат успех, отказ, 3DS‑аутентификация, недостаточно средств и так далее. Конкретный список карт и кодов результата зависит от провайдера, поэтому сверяйтесь со страницами провайдеров на нашем сайте
Обязательно протестируйте как минимум такие базовые сценарии
| Сценарий |
Данные для проверки |
Ожидаемый результат |
| Успешная оплата без 3DS |
Тестовая карта Visa или Mastercard, валидный срок, CVC, сумма 10.00 |
Статус успеха, авторизация и списание, корректный webhook о платеже |
| Успешная оплата с 3DS |
Карта со сценарием 3DS challenge, как указано провайдером |
Окно 3DS, подтверждение, затем успешный платеж и webhook |
| Недостаточно средств |
Карта с признаком insufficient funds в песочнице |
Отказ с кодом 51 или аналогичным, корректная обработка на фронте |
| Общий отказ банка |
Карта с general decline в песочнице |
Отказ без списания, понятное сообщение пользователю |
| Неверный CVC |
Валидный номер карты, но неправильный CVC |
Отказ, корректная валидация и логирование |
| Просроченная карта |
Срок действия в прошлом |
Отказ на этапе авторизации |
| Частичная операция захвата |
Предавторизация на 100.00 и capture на 60.00 |
Частичный захват, правильный статус и суммы |
| Возврат и отмена |
Успешный платеж затем полный и частичный refund или reversal |
Корректные статусы возвратов и вебхуки |
Подробно о 3DS и требованиях безопасности см. раздел PCI DSS, 3DS и SCA. Возвраты и отмены разобраны в паттернах Refunds и Reversals.
Эмуляция вебхуков и идемпотентность
Эмуляция вебхуков позволяет проверить обработку асинхронных событий без ожидания реальной банковской обработки. Большинство провайдеров поддерживают ручной вызов событий из кабинетa или API вызов для пересылки тестового webhook на ваш адрес.
Рекомендации
- Поднимите отдельный тестовый endpoint например https sandbox.example.com webhooks payments
- Валидируйте подпись каждого события и время жизни таймстэмпа см. Вебхуки и идемпотентность
- Обрабатывайте повторную доставку и изменяйте систему только один раз по идемпотентному ключу
- Логируйте исходное тело webhook и результат обработки для дальнейшего аудита
Типовые события для проверки
| Событие |
Когда отправляется |
Полезная проверка |
| payment.succeeded |
Платеж успешно завершен |
Создание заказа, начисление товара услуги, идемпотентность при повторе |
| payment.failed |
Платеж отклонен |
Отсутствие списаний и корректная ошибка пользователю |
| refund.succeeded |
Возврат средств |
Обратная проводка, уведомление клиента, корректная сумма |
| refund.failed |
Ошибка возврата |
Логи и алерты для ручной проверки |
По мониторингу ошибок и повторным доставкам см. Ошибки и мониторинг.
Negative testing ошибки и возвраты
Negative testing это системная проверка ошибочных и пограничных состояний. В платежах важно увидеть, как ваш бэкенд и фронтенд ведут себя в случаях отказов и нестабильности.
Что обязательно протестировать
- Временные сетевые ошибки при обращении к API время ожидания, HTTP 5xx, повторные попытки
- Отказы эмитента различные коды decline и корректные тексты сообщений
- Ошибки 3DS таймаут, неверный одноразовый код, закрытие окна пользователем см. PCI и 3DS
- Недоступность вебхуков ваш endpoint возвращает 500 и провайдер делает повторные попытки
- Конкурентные события платеж прошел, но ваши ретраи клиентской оплаты тоже сработали проверка идемпотентности
- Отмена предавторизации и частичный refund см. Refunds и Reversals
- Подписки и повторные списания истекший токен, отказ банка, смена карты см. Рекуррентные списания
Нагрузочное тестирование и лимиты
Нагрузочное тестирование помогает выявить узкие места до релиза и согласовать лимиты с провайдером. Планируйте стенд и тестовые данные заранее.
Рекомендации
- Уточните rate limits у вашего провайдера QPS, burst, суточные ограничения
- Используйте реалистичные профили нагрузок пиковые минуты, волны по маркетинговым кампаниям
- Генерируйте идемпотентные ключи для каждого запроса во избежание двойных списаний
- Миксуйте сценарии успешных и отказных запросов, чтобы прогнать retry логику
- Моделируйте задержки вебхуков от секунд до минут и смотрите устойчивость вашей очереди
- Соберите метрики P95 P99 latency, ошибки по классам, доля успешных платежей см. Ошибки и мониторинг
Важно согласовать проведение нагрузочного тестирования с провайдером, чтобы не нарушать правила песочницы и не получить блокировку.
QA чек‑листы для релизов
Сводный чек‑лист который можно превратить в ваши автотесты и регрессию
Инициация платежа
- Валидация и маскирование полей карты
- Обязательные поля заказа сумма, валюта, описание, идентификатор корзины
- Передача идемпотентного ключа и трекинг корреляции
3DS и риск проверки
- Поддержка challenge и frictionless
- Корректная обработка отмены пользователем и таймаута
- Соответствие требованиям SCA см. PCI и 3DS
Вебхуки
- Проверка подписи, источника IP если требуется, и таймстэмпа
- Идемпотентная обработка повторных доставок см. Вебхуки и идемпотентность
- Ретраи при временной недоступности базы или очереди
Захват, возвраты и отмены
- Полный и частичный capture
- Полный и частичный refund и reversal см. Refunds и Reversals
- Прозрачные статусы в админке и уведомления клиенту
Подписки и токенизация
Мобильные сценарии
- Проверка работы SDK в iOS и Android с fallback в веб см. Мобильные SDK
- Глубокие ссылки после 3DS и корректное восстановление состояния
Сверка и учет
- Расхождения между вашими статусами и статусами провайдера выявляйте через сверку см. Сверка платежей
- Полнота логов и трассировка end to end
Безопасность
- Хранение и ротация секретов
- Маскирование PAN, CVC в логах и интерфейсах
Провайдер специфика
У каждого провайдера свои настройки песочницы, перечни тестовых карт и коды ошибок. Ищите на страницах
Если требуется единая логика по нескольким провайдерам, абстрагируйте обработку вебхуков и ошибок через ваши внутренние коды и используйте адаптеры.
Переход из песочницы в прод
Рекомендуемый порядок миграции
- Пройдите чек‑лист из раздела выше, закройте все баги
- Получите боевые ключи, разделите переменные окружения и доступы
- Переключите webhook URL на боевой и проверьте подпись на health‑событии
- Включите 3DS и антифрод правила на стороне провайдера по согласованным политикам
- Проведите тестовые платежи минимальными суммами на бою если это допускается договором и отмените их
- Настройте алерты, дашборды и дежурства см. Ошибки и мониторинг
- Запустите сверку статусов и сумм см. Сверка платежей
- Задокументируйте процедуру roll back и план действий при инцидентах
Частые вопросы
Можно ли использовать реальные карты в песочнице
Нет, используйте только тестовые карты и значения, предоставленные провайдером.
Как тестировать 3DS если банк требует подтверждение по SMS
В песочницах обычно предусмотрен стаб 3DS. Сверьтесь с документацией вашего провайдера и разделом PCI и 3DS.
Что делать если webhook не пришел
Проверьте доступность вашего endpoint, подписи и повторные доставки. При необходимости включите эмуляцию и ручную повторную отправку см. Вебхуки и идемпотентность и Ошибки и мониторинг.
Как синхронизировать статусы если вебхуки задерживаются
Используйте безопасный повторный запрос статуса по API с идемпотентными ключами и регулярную сверку см. Сверка платежей.
Как выбрать провайдера с удобной песочницей
Сравните функциональность, стабильность sandbox, полноту тестовых сценариев и SLA поддержки см. Банки против агрегаторов.
Вывод и следующий шаг
Песочница эквайринг, тестовые карты и системный QA процесс экономят вам недели и деньги на этапе запуска платежей. Эмулируйте вебхуки, проводите negative testing и не забывайте про нагрузочное тестирование, чтобы уверенно выходить в прод. Начните с настройки базового контура и первых автотестов см. Интеграция с нуля, затем пройдите чек‑лист на этой странице и завершите миграцию. Готовы начать Прямо сейчас откройте песочницу у выбранного провайдера, настройте вебхуки и проведите первую серию тестов.