Как перехватить HTTP-сессию с сервера без оболочки

Я отлаживаю веб-приложение, которое взаимодействует с безопасным платежным шлюзом, предоставленным банком моего клиента. Безопасный шлюз работает следующим образом:

  1. Браузер конечного пользователя перенаправляется на веб-сайт банка, где он должен ввести номер своей кредитной карты.

  2. Если аутентификация прошла успешно, сервер банка (не браузер конечного пользователя) открывает HTTPS-подключение к URL-адресу нашего сайта с данными транзакции.

  3. Наш сайт должен ответить на это HTTPS-соединение строкой «ХОРОШО», и отметьте в нашей БД транзакцию как оплаченную. Если наш сайт не отвечает, шлюз отображает сообщение об ошибке для конечного пользователя, и процесс оплаты считается неудачным.

  4. Затем браузер конечного пользователя перенаправляется с сайта банка на наш собственный.

Так или иначе, шлюз недавно начал показывать периодические ошибки. Что происходит, это:

  • Заказы помечаются в нашей БД как оплаченные.
  • Я проверяю логи нашего сервера и вижу соединение с сервером банка, и вижу ответ 200 от нашего веб-сервера.
  • …и все же, шлюз банка утверждает, что операция не удалась, потому что наш сервер не ответил правильно.

Итак, что я хотел бы сделать, это перехватить HTTP-диалог между сервером банка и нашим собственным, чтобы точно увидеть, что происходит … но наш сайт размещен на общем сервере (это стандартный стек LAMP). Я, очевидно, не могу ничего установить на сервер банка, чтобы записывать сеанс с их конца; Есть ли способ сделать это со стороны нашего сервера?

(Если это поможет, наше веб-приложение написано на PHP, поэтому, если есть какая-то инструкция, которая позволяет нам выводить необработанный HTTP-диалог, это тоже было бы хорошо).

РЕДАКТИРОВАТЬ: чтобы быть ясным, мне не нужен только HTTP-запрос, который я получаю от сервера банка, но и HTTP-ответ, который мое приложение отправляет обратно. Мне нужно иметь возможность самостоятельно проверить, действительно ли мое приложение отправляет обратно правильную строку «ОК», и нет какой-то тонкой ошибки, которую мы пропустили.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]