如何使用服务器 IP 而不是用户 IP 将用户重定向到 API 端点(不同域)?

How can I redirect user to API endpoint (different domain) using server IP instead of user IP?

我正在使用 Laravel 和 Guzzle 向外部 API 发出 soap 请求。所有其他调用都已成功获得实际响应,但将用户重定向到外部页面失败,因为外部 API Web 服务仅允许我的服务器 IP 访问该页面。

我试过:

  1. windows.location (javascript)
  2. 位置header (PHP)
  3. return 重定向 URL (PHP)

这是他们关于如何使用 VB 语言进行重定向的文档: redirection code in VB

所有这些方法仅使用使用用户 IP 而不是服务器 IP 的浏览器重定向。

你们有什么方法可以使用我的服务器 IP 重定向用户吗?

提前致谢。

额外context/information:

Example screenshot for the fourth call which include get the quotation number and generate the url parameter

这是他们在 API 文档中提供的 VB 的代码。那么为什么我要将用户带到页面呢?这是因为当 GetQuotation(第四次调用)已经提交到他们的数据库时,它将 return QuoNo 用于 URL 参数。当用户被重定向到带有参数 QuoNo=12412194149124 的外部页面时,他们的后端将查询用户在我这边(mydomain.com/form)填写的报价详情并自动在他们这边填写(otherdomain .com/form).

如果您从屏幕截图中看到,一旦生成报价编号 (QuoNo),System.Diagnostics.Process.Start 将执行 url。所以一旦用户点击我们端(mydomain.com/form)的'buy now'按钮,它会调用第四次调用(GetQuotationguzzle函数)并生成一个报价单号(QuoNo)然后它将在 http://otherdomain.com/main.a5w?tokenid=wm-9Kj-14e-Fa4-I1adlXrQ00weqwe3S&QuoNo=QUO022348921312301623 中填充。根据我对 VB 代码的理解,System.Diagnostics.Process.Start 将强制打开 url。

如果仍然缺少给定的信息,我很抱歉。随时询问更多。谢谢

心想事成,得不到的遗憾。你唯一能用重定向做的就是告诉浏览器去哪里,你无法控制这里的 IP,因为这会带来各种关于安全和识别的问题。实现您想要的唯一方法是将生成的网页的 html 包装在您的网站中或删除 ip 地址的限制。另一种解决方案可能是构建一个每个人都可以访问的简单页面,并将 API 路由限制到特定的 IP 地址。例如:

假设支付网关位于:example.com/checkout,每个人都可以访问此支付网关,并且包含一个表单,您可以执行重定向并用传递的数据填写此表单。

此表单随后会将信息 post 发送至 example.com/api/v1/checkout,后者将处理您的表单数据,如果交易成功,则 return。基于此 return 用户将被重定向到另一个页面。这是假设您可以控制其他域,因为只有使用您的服务器 IP 才能访问此站点。

如果不是这种情况,除了通过 guzzle post 将数据发送到端点并使用这些 return 值向用户提供反馈之外别无他法。

我希望这能回答您的问题,如果有任何不清楚的地方请告诉我。