Как я могу перенаправить пользователя на конечную точку API (другой домен), используя IP-адрес сервера вместо IP-адреса пользователя? - PullRequest
0 голосов
/ 14 ноября 2018

Я делаю запрос мыла к внешнему API, используя Laravel & Guzzle. Все остальные вызовы успешно получили фактический ответ, но перенаправление пользователя на внешнюю страницу не удалось, поскольку веб-служба внешнего API только позволяет IP-адресу моего сервера получать доступ к этой странице.

Я пробовал:

  1. windows.location (javascript)
  2. заголовок местоположения (PHP)
  3. возврат URL перенаправления (PHP)

Это их документация о том, как перенаправить на языке VB: код перенаправления в VB

Все эти методы используют только перенаправление браузера, которое использует IP-адрес пользователя, а не IP-адрес сервера.

Любой метод, который я могу использовать для перенаправления пользователя с использованием IP-адреса моего сервера, который вы, ребята, можете порекомендовать?

Заранее спасибо.

Дополнительный контекст / информация :

Пример снимка экрана для четвертого звонка, который включает получение номера кавычки и генерацию параметра url

Это код для VB, который они предоставили в документации API. Так почему я хочу привести пользователя на страницу? Это потому, что когда GetQuotation (четвертый вызов) уже отправлен в их базу данных, он вернет QuoNo, который будет использоваться в параметре URL. Когда пользователь перенаправляется на внешнюю страницу с параметром QuoNo=12412194149124, его бэкэнд будет запрашивать детали предложения, которые пользователь заполняет на моей стороне (mydomain.com/form), и автоматически заполняет их на своей стороне (otherdomain.com/form) ).

Если вы видите на скриншоте, System.Diagnostics.Process.Start выполнит URL, как только будет сгенерирован номер предложения (QuoNo). Поэтому, как только пользователь нажмет кнопку «купить сейчас» на нашем конце (mydomain.com/form), он вызовет четвертый вызов (функция GetQuotation guzzle) и сгенерирует номер кавычки (QuoNo), после чего он будет заполнен в * 1034. *http://otherdomain.com/main.a5w?tokenid=wm-9Kj-14e-Fa4-I1adlXrQ00weqwe3S&QuoNo=QUO022348921312301623. Исходя из того, что я понимаю в коде VB, System.Diagnostics.Process.Start заставит открыть URL-адрес.

Извините, если по-прежнему не хватает информации. Не стесняйтесь спрашивать больше. Спасибо

1 Ответ

0 голосов
/ 14 ноября 2018

То, что вы хотите, не может быть достигнуто, к сожалению. Единственное, что вы можете сделать с помощью перенаправления, это сообщить браузеру, куда идти, у вас нет контроля над IP-адресом, поскольку это может привести к возникновению всевозможных проблем, связанных с безопасностью и идентификацией. Единственный способ добиться того, чего вы хотите, - это обернуть html получившейся веб-страницы на вашем веб-сайте или снять ограничение IP-адресов. Другим решением может быть создание простой страницы, доступной для всех, и ограничение маршрутов API конкретными IP-адресами. Например:

Предположим, что платежный шлюз находится по адресу: example.com/checkout, этот будет доступен для всех и будет содержать форму, в которую вы можете выполнить перенаправление и заполнить эту форму переданными данными.

Эта форма затем отправит информацию на example.com/api/v1/checkout, которая обработает данные вашей формы и вернет, если транзакция прошла успешно. На основании этого возврата пользователь будет перенаправлен на другую страницу. Это предполагает, что у вас есть контроль над другим доменом, так как только с IP вашего сервера вы можете получить доступ к этому сайту.

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

Я надеюсь, что это ответит на ваш вопрос, если что-то неясно, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...