【发布时间】:2011-07-27 21:50:44
【问题描述】:
我们*有一个 Web 应用程序,由 Delphi + Intraweb(用于前端/Web 代码管理)创建,用于管理订购流程。它获取订购信息,然后向 authorize.net 发送交易请求(主要使用他们的SIM sample code)。这很好用,信用卡订单也得到了处理。
但是,当 authorize.net 将表单帖子发送回中继响应 URL (http://developer.authorize.net/guides/SIM/Receipt_Options/Relay_Response.htm) 时,Intraweb 应用程序崩溃了。我可以看到,使用 TamperData,表单数据正在正确发送。她可以看到她的程序打开了一个数据库连接,然后超时。
- 我已经用尽了我的 google-fu,但没有找到任何 Intraweb 代码能够接受传入表单帖子的示例。 (这可能就是我们真正需要的全部。如果我们能够将数据导入 Intraweb/Delphi 世界,那么我们就可以管理其余部分。)
- Intraweb documentation 表明 IW 将接受通过 URL 传递的参数,但没有提及接受 POST 数据。
- authorize.net 社区论坛有一个提问/回答的帖子,基本上说“抱歉,我们没有任何 Delphi 代码示例,请咨询您的供应商。”
- Intraweb 技术支持无法帮助她。 (我认为他们几周前还没有回应请求,但我不确定。)
- 我建议她创建一个模拟 authorize.net 表单帖子的测试应用程序存根,以确保正确创建表单对象。 (我真的不明白拖放表单字段背后发生了什么,但我倾注了生成的源代码试图弄清楚这一点。)但是表单 POST 是表单 POST,对吗?我的意思是,它是 HTTP,而不是魔法。但这样做有两个问题。 1.) Intraweb 似乎将表单字段名称强制为所有大写字母。 2.) 她说 IW 不接受下划线作为表单字段名称的一部分。当然,我们仍然坚持使用 authorize.net 发送的内容、小写字母、下划线分隔等等。
您是否有任何见解、示例代码指针或建议将其全部扔掉并转向另一个解决方案?我们将不胜感激。
*我们 = 一个老派的 Delphi 程序员/DBA,他对 Delphi 了如指掌,但 Intraweb “自动运行”,而我,一个 Java 程序员,偶尔是 PHP 黑客,在国家的另一边,对可视化 IDE 过敏,但正在尝试为她解读互联网和 HTTP 的奥秘。对于这个特殊的问题,我们似乎比我们各部分的总和要少。
【问题讨论】:
-
您可以从单独的应用程序管理帖子。如果你是 Delphi 商店,你可以从 Delphi 程序 + INDY 中做到这一点。顺便说一句,Intraweb 是在 INDY 制造的。我不知道 authorize.net 服务,但我相信你可以使用 INDY 管理它,然后重定向到 IW 应用程序。
-
感谢 jachguate!我在研究问题时看到了对 INDY 的引用,但我不确定是否有必要,或者 Intraweb 是否可以自行处理。
-
@buzzo,Intraweb 位于印度...这样做。
-
在 IW 中拖放创建表单将无济于事 - 这是创建 HTTP POST 请求的部分。相反,IW 应用程序需要一个通用的 HTTP POST 事件处理程序来处理来自 authorize.net 的传入表单数据。这应该是可能的(在 IW 支持的帮助下)。也许它需要向下一层到 WebBroker 层。为了调试,我会运行一个 Indy HTTP 服务器并检查传入的表单参数,这只需要几行代码。
-
好的,这真的很有用。我不确定 IW 是否具有通用 HTTP POST 事件处理程序,或者它是否基于拖放到应用程序中的“表单对象”自动创建特定于对象的 POST 处理程序。这是我最初的猜测,假设这就是“正常”表单的管理方式。 是否 IW 是否支持 POST?我假设他们这样做了,至少对于内部页面到页面的使用,但我的同事刚刚说了一些让我认为他们根本不支持 POST 的话。这是真的吗?
标签: delphi authorize.net intraweb