如何对 POST 有用的链接

问题描述

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

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

顺序是这样的:

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

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

对不起,如果这真的很愚蠢!我是一名 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
%>

这只是一个基本示例,它期望表单发布参数为“somevalue”且值为“yes”。基于此,它返回一个条件响应。 显然,您需要根据您的要求填充响应,但这应该能让您了解如何构建它。

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


有用的链接