0

我有 Web 应用程序,通过该应用程序进行支付交易。

申请流程

用户将打开我的应用程序并单击付款按钮。现在我将请求重定向到支付网关提供商(ICICI、EBS、PayPal 等)。现在,支付网关提供商页面将出现在我的网站中。现在支付流程将通过,支付网关提供商会将他们的响应发布到我的应用程序(到 JSP 页面)。捕获响应后,我将处理请求。

我的要求

当他们调用我的 JSP 时,我如何知道 ICICI、PayPal 或 EBS 服务器 IP 地址。如果我打电话给request.getRemoteAddr()它会给客户端IP地址。我想知道支付网关服务器的 IP 地址。

提供者将数据发布为GET而不是 POST。在这里,我没有提到我的实际支付网关提供商。

4

2 回答 2

2

一般来说,您只能在没有支付提供商帮助的情况下知道这一点,如果

  • 您和提供商之间没有代理人,并且
  • 提供商直接向您发送 HTTP POST(或类似的)

在这种情况下ServletRequest.getRemoteAddr()应该给你提供者的地址。

如果您改为获取客户端浏览器的地址,那么提供商可能不会直接将 POST 发送给您,而是指示客户端浏览器发送它(很可能使用 Javascript)。在这种情况下,您无法找到提供商发送的地址。


无论如何,您为什么需要知道支付提供商的 IP 地址?你自己重定向到提供者,所以你已经有了地址,不是吗?

也许您可以更详细地解释一下您、客户端浏览器和支付提供商之间的数据流是什么,以及为什么您想知道提供商的 IP 地址?也许那时我们可以提供更好的帮助。

于 2013-06-24T08:35:30.907 回答
1

对于 PayPal,您可以使用 IPN
https://www.paypal.com/ipn

即时付款通知 (IPN) 是 PayPal 的消息服务,可在交易受到影响时发送通知。一旦集成了 IPN,卖家就可以自动化他们的后台,这样他们就不必等待付款进入来触发订单履行。

使用 IPN,您可以从 PayPal 服务器收到对您的 IPN url 的 POST/GET 调用。这意味着客户在付款后不必返回您的网站,您也不必验证客户数据 - 相反,PayPal 服务器会进行 3 次握手:他们向您发送付款数据,您发回支票,并且他们验证您所拥有的数据是否正确的检查。在这种情况下,服务器 ip 是来自 http 调用的原始 ip。

其他服务可能会有类似的东西。

于 2013-06-24T14:39:43.987 回答