【问题标题】:POSTING a response to an external url in php在 php 中发布对外部 url 的响应
【发布时间】:2014-04-29 18:30:47
【问题描述】:

我有一个网站,我可以在其中获得付款处理器发出的付款响应。我的页面是 https,而我的客户页面不是。

我以这种方式发布付款回复

echo '<html>Redirecting to merchants website..<body>
<form id="myForm" action="'.$response_url.'" method="POST">
<input type="hidden" name="status" value="'.$response['status'].'"/>
<input type="hidden" name="customerReferenceNo" value="'.$data['customerReferenceNo'].'"/>
<input type="hidden" name="amount" value="'.$data['amount'].'"/>
<input type="hidden" name="paymentMode" value="'.$data['paymentMode'].'"/>
<input type="hidden" name="cardProvider" value="'.$data['cardProvider'].'"/>
<input type="hidden" name="orderID" value="'.$orderID.'"/>
<input type="hidden" name="mobileNo" value="'.$mobileNo.'"/>
<input type="hidden" name="email" value="'.$email.'"/>
</form>

<script>document.getElementById("myForm").submit();</script></body></html>';

作为隐藏表单发布。但是当我将值从 https 发布到 http 页面时,它会在某些浏览器中弹出安全警告:

虽然此页面已加密,但您输入的信息将被发送 通过未加密的连接,很容易被第三方读取。

您确定要继续发送此信息吗?

我想知道这是否是向外部 url 发布响应的正确方式?我所做的是正确的吗?这是我应该向外部 url 发布付款响应的确切方式吗?

请帮忙提点建议

【问题讨论】:

  • 您在https://... 页面上加载表单,但将其提交给http:// S)。每当您提交安全->不安全时,您都会收到该警告,即使该不安全是某个完全陌生的页面。这是一种安全机制,你不应该绕过它。
  • 您想将用户重定向回响应 url 还是只是通知响应 url 付款已完成?
  • 我想将数据发布到外部 url 并重定向到它..
  • @Kypros 当我发布我的客户可以在我重定向到的 oage 中显示付款状态
  • 出于安全考虑,浏览器发出该警告是有充分理由的。它应该在那里。您应该做的是使用 CURL 之类的东西将支付结果发布到 http 网站上仅记录支付结果的页面。然后将它们重定向回可以检查其状态的其他站点。通常通过一个 id。当他们被重定向到您的站点进行处理时,让其他站点向您发送他们客户的唯一 ID。然后将该ID与响应一起发回。重定向到其他网站,他们应该有 id。

标签: php forms post response payment


【解决方案1】:

正如上面评论中提到的,您绝对应该注意回帖到 https 网站。但是,与其将隐藏表单输出到浏览器并从那里发布,不如使用 curl 将数据直接从服务器发送到支付处理器。 见curl_exec in php documentation

【讨论】:

  • 我对你所说的有疑问。如果我将响应发布到他们使用 curl 提供的 url,然后使用 header 或其他重定向到 saem url,他们是否能够显示回应我通过了吗?
  • 这可能取决于支付服务以及您在发布数据后想要显示的内容。您将在您的 php 代码中返回结果。我当然不确定结果会是什么。因此,您可以显示一些信息或可以重定向到的 url。
猜你喜欢
  • 2020-11-12
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 2019-01-25
  • 2010-10-03
  • 1970-01-01
相关资源
最近更新 更多