【问题标题】:CGI-call to .aspx pageCGI 调用 .aspx 页面
【发布时间】:2010-11-06 15:45:46
【问题描述】:

我有以下情况。我为我的公司创建了一个 ASP.NET Web 应用程序(框架 3.5),它允许用户购买商品或服务。然后,用户点击“Proceed to Payment”,调用外部支付站点。然后用户通过该站点输入卡的详细信息。

在用户成功交易的情况下,支付网站正在对 .aspx 页面(比如 Success.aspx)执行 CGI 调用。因此,我创建了这个 .aspx 页面,并将其连同它的 aspx.vb 文件一起放置在我网站的根目录中(它将执行成功交易的处理,例如设置 Paid、PaidDate 字段等)。发生的事情是交易成功,支付网站公司的日志显示正在找到并调用 Success.aspx ......但是,Successful.aspx.vb 没有执行任何处理(即这些字段根本没有设置)。

我缺少关于 CGI 调用的内容吗?

【问题讨论】:

  • 您能在 IIS 日志中看到对 Sucessful.aspx 的命中吗?如果在浏览器中加载 Sucessful.aspx 是否可以正常工作?
  • 支付网站正在找到Successful.aspx 页面。这是一个正常且最小的.aspx 页面。我怀疑也许通过 CGI 回调代码隐藏不会被调用?
  • CGI 击中 aspx 与浏览器击中它是一样的。
  • 您好 Russau,感谢您的 cmets。那么,当成功的.aspx 页面被点击时,Session_Start 也会在 Global.asax.vb 中被调用吗?由于此应用程序,您必须登录才能转到特定页面,但在 Session_Start 我正在做一个例外,以便在任何页面的情况下都会重定向到“Login.aspx”,但在包含“Successful.aspx”的 URL,它将重定向到 Request.Rawurl.tostring。该 CGI 调用的 URL 是否与浏览器中的 URL 相同,我可以在尝试时重定向吗?谢谢。
  • Session_Start 可能会在每次点击时触发 - 因为 CGI 客户端不会在连续点击之间存储 cookie。检查您的 IIS 日志以查看您收到的是 200 状态代码(成功)还是 302(重定向)。客户端也有可能不服从重定向,如果可以的话最好避免这种情况。

标签: asp.net cgi callback payment-gateway


【解决方案1】:

所以最后的答案是:

  • Session_Start 会在第 3 方的每次点击时触发,因为客户端不会存储/传递会话 cookie。
  • Session_Start 包含重定向代码。第 3 方获得状态 302,并且不遵守重定向并将其记录为成功。
  • 修复 - 从 Session_Start 中删除重定向,并且第 3 方永远不会收到重定向。

【讨论】:

    【解决方案2】:

    尝试在 Success.aspx 中设置 Response.Expires = -1。它可能已被缓存。

    其次,用户在付款后发送到successful.aspx后需要做什么?

    【讨论】:

    • 感谢您的帮助,但解决方案似乎有所不同。我的重定向不正确,这与 CGI 调用一起导致了问题。谢谢。
    猜你喜欢
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多