如何做一个服务器到服务器响应 POST

How to do a server to server response to a POST

我正在开发一个古老的经典 asp 站点,该站点使用 vbscript 作为服务器代码,使用 HTML 和 JavaScript 作为客户端。我正在与处理信用卡付款详细信息的外部服务器通信。

我找到了很多从 POST 获取服务器响应的答案(包括使用 JavaScript 的客户端和使用 vbscript 的我们自己的网站服务器)。然而,我没能找到的是如何从我的服务器响应信用卡网关服务器发出的 POST。

顺序是这样的:

  1. 我post将所有交易明细发送到网关服务器
  2. 他们立即以成功状态、安全密钥、交易 ID 和我必须立即重定向到的 URL 响应。
  3. 然后他们将 'notification' post 发送到 URL,我在第一个 post 中提供了该 post,其中包含由交易详细信息组成的 MD5 哈希并且,重要的是,安全密钥。我必须生成相同的 MD5 散列并检查它是否匹配。这显然是为了确认初始交易没有以任何方式受到损害。
  4. 完成安全检查后,我需要回复:“当我们收到您对我们通知的回复时 POST,我们会根据您的回复状态确定将您的客户浏览器定向到何处:”

最后一个阶段是我正在努力的阶段。我敢肯定这是非常简单和愚蠢的事情,但我无法在任何地方找到任何信息。我在 HTTPResponse 上发现了很多东西,但似乎所有的东西都是从我所做的 POST 得到的响应(我在早期阶段使用过它),而在这里我想生成一个响应POST 我收到了。请注意,这一切都必须在我的服务器端完成,因为信用卡网关有我们服务器的 IP 地址,并且只会接受来自该 IP 地址的这些交易,因此 none 可以从客户的浏览器发送。

抱歉,如果这真的很愚蠢!我是一名 C++ 开发人员,而不是 Web 开发人员,但是,就像处理这些事情的方式一样,我必须进行这一点 Web 开发!

您在这里谈论的是消费者(网关服务器)向您的 Web 应用程序上的端点发送 POST 请求,您应该像接收 POST从本地请求,过程相同。

这是一个基本示例;

<%
'Expect only POST data to this page
If UCase(Request.ServerVariables("REQUEST_METHOD") & "") = "POST" Then
  'Craft your response
  Call BuildResponse()
Else
  'Anything other then a POST should be met with a 404 response.
  Response.Status = "404 Not found"
End If
Call Response.End()

'Sub for crafting your response.
Sub BuildResponse()
  'Do we have a form field of "somevalue" with a value of "yes"?
  If LCase(Request.Form("somevalue") & "") = "yes" Then
    Call Response.Write("Hello world - Valid")
  Else
    Call Response.Write("Hello world - Invalid")
  End If
End Sub
%>

这只是一个基本示例,它需要一个值为“yes”的“somevalue”形式的 post 参数。基于此它 returns 有条件的响应。 显然,您需要根据您的要求填充响应,但这应该让您了解如何构建它。

旁注:由于您自己不是消费者,因此输出一个文本文件或设置一个电子邮件来报告传递的表单参数可能是个好主意您调试消费者POST访问页面的内容,以帮助您确定如何处理请求并生成消费者期望的有效响应。


有用的链接

  • How to check form submission ASP classic
  • ASP - Printing the entire request contents
  • How to create a new text file with asp?