получить URL-адрес стороннего веб-сайта

После оформления заказа моя страница перенаправляется на сайт платежного шлюза. После успешной оплаты или неудачи ее перенаправление (метод POST) на мою собственную страницу сайта (www.abc.com/success/id или www.abc.com/fail/id).

Мой вопрос: могу ли я получить URL-адрес веб-сайта платежного шлюза. Я хочу знать, с какого URL я перенаправлен.

Я использую Laravel5.6, и мой код выглядит так

public function getPaymentSuccess(Request $request){
  $get_payment_gateway_url = URL::previous();
  dd($get_payment_gateway_url);
}

только его печатный текущий URL-адрес (URL-адрес моего собственного веб-сайта).


person user3406350    schedule 25.07.2018    source источник


Ответы (1)


Если платежный шлюз хочет поделиться тем, откуда он перенаправился, либо потому, что он сгенерировал ответ о перенаправлении, за которым последовал браузер, и установил отправителя, либо потому, что он напрямую вызвал URL-адрес обратного вызова и предоставил реферер, вы можете получить доступ к этой информации из:

$get_payment_gateway_url = $request->server("HTTP_REFERER");

Однако то, что это заголовок HTTP_*, означает, что он предоставлен отправителем запроса и, следовательно, не должен использоваться для проверок безопасности, и не гарантируется, что он будет там.

Если платежный шлюз не передает эту информацию, то невозможно узнать, откуда приходит запрос, потому что это обычно происходит за пределами вашего сервера, и единственное, что видит ваш сервер, — это просто входящий запрос с той информацией, которую отправитель решил предоставить.

person apokryfos    schedule 25.07.2018
comment
когда я использовал $request-›server(HTTP_REFERER), он печатал null. это означает, что платежный шлюз не обменивается информацией? - person user3406350; 25.07.2018
comment
Скорее всего так и есть - person apokryfos; 25.07.2018