Я пытаюсь понять концепцию кодов ответов HTTP, но у меня возникла путаница.
У меня есть сайт, который принимает платежи через платежный шлюз. Клиент перенаправляется на сайт шлюза, а затем после оплаты шлюз перенаправляет обратно на функцию обратного вызова моего сайта.
Это все работает нормально, однако проблема в том, что функция обратного вызова моего сайта берет код ответа и перенаправляет его на страницу успеха или сбоя.
Платежный шлюз получает обратно заголовок перенаправления «302», возникающий из-за этого, и считает, что это угроза безопасности, даже если это внутреннее перенаправление без передачи данных (так как 302 не сохраняет переменные POST / GET тем не мение). Таким образом, он отменяет платеж.
Но на самом деле, когда шлюз срабатывает на мою функцию обратного вызова, разве это не должно отправлять обратно 200, так как оно было найдено, и я думаю, что оно будет отправлено обратно на шлюз и удовлетворит их. С этого момента, что бы ни происходило внутри, не должно быть их заботой или знанием. Но, похоже, 200 не будет отправлено до тех пор, пока не будет достигнута последняя целевая страница и выполнение страницы не остановится.
Единственная работа, которую я нашел, чтобы «обмануть» шлюз, - это использовать перенаправление javascript или мета-перенаправление, поскольку оно не передает код заголовка перенаправления. Но есть ли лучший способ или что-то, что я должен делать по-другому?