API и надёжная интеграция
Практика интеграции RollyPay: запросы на Node.js, Python и PHP, подпись webhook, идемпотентность, тестовый режим и обработка отказов.
Все материалы темы
- API приёма платежей: от запроса до подтверждения
Полный платёжный API-сценарий состоит из создания заказа, запроса с ключом и nonce, сохранения pay_url, подписанного webhook и идемпотентной выдачи результата.
- Интеграция платежей на Node.js: запрос и webhook
В Node.js важно сохранить исходный Buffer webhook до body-parser, генерировать новый UUID для X-Nonce и сравнивать подпись через timingSafeEqual.
- Интеграция платежей на Python: пример и проверка
Python-интеграция должна задавать таймаут HTTP-клиента, хранить Decimal как строку в запросе и проверять HMAC через compare_digest.
- Интеграция платежей на PHP: создание и callback
В PHP следует проверять ошибки cURL и HTTP-код отдельно, читать callback из php://input один раз и сравнивать HMAC через hash_equals.
- Проверка подписи webhook: HMAC-SHA256 без ошибок
Правильная строка подписи собирается из X-Timestamp, точки и неизменённого raw body; повторная сериализация JSON почти всегда даст другой HMAC.
- Идемпотентность платёжных запросов: защита от дублей
У создания и обработки результата разные ключи: order_id защищает бизнес-заказ, а payment_id или event key защищает выдачу от повторного webhook.
- Тестовый режим платежей: сценарии проверки интеграции
Тестовый режим полезен только с планом проверок: успешный, отменённый, просроченный, повторный и подписанный неверным секретом сценарии должны иметь ожидаемый результат.
- Что делать, если платёж не прошёл: статусы и повтор
Сначала различите техническую ошибку создания, отказ метода, отмену и истечение: для каждого состояния нужен свой текст, повтор и действие поддержки.
- Повторная доставка webhook: как не потерять платёжное событие
Webhook нужно проектировать как доставляемое повторно сообщение: быстро проверить подпись, надёжно сохранить событие и отделить HTTP-ответ от долгой продуктовой операции.
- Сверка платежей для B2B SaaS: счета, оплаты и доступ
Три списка — оплаты, счета и подписки — должны сходиться по одному номеру. Разбираем, как это делать за пятнадцать минут в день.
- Коды ошибок платёжного API: как их обрабатывать
Код ошибки платёжного API — это инструкция для вашего сервера, а не текст для покупателя. Разбираем три группы ошибок и как их обрабатывать без лишних тикетов.