这是情况。我的公司有一家电子商务商店,但我们自己不收集或处理信用卡信息。当用户选择“使用信用卡付款”时,他们会立即被带到支付网站,然后该网站会处理他们的信用卡并将状态发送回给我们,以便将订单标记为已付款。我们的站点在 ColdFusion 上运行,它从站点接收数据作为表单数据,处理表单变量,并为客户创建一个订单,标记为已付款。信用卡网站只发送一次信息,没有“握手”。
在过去的一个半月里,我们遇到了一个问题,有时我们无法从信用卡处理网站获取信息,尽管他们说他们已经发送了信息。因此,没有创建订单,并且产品仍在客户的购物车中,即使信用卡已被收取费用。这个问题是间歇性的。我们不能将它与我们这边的任何服务器更改联系起来,信用卡网站否认他们这边的更改。
因此,我们正在尝试做的事情之一是记录客户实际尝试使用信用卡付款的时间(这样我们可以更轻松地抓住错过的人)。所以我想以某种方式记录有人点击“用信用卡付款”时的事件。问题是表单操作将数据提交到信用卡网站。我能想到的唯一方法是将表单操作更改为我们网站上的页面,记录付款尝试,然后再次将表单提交给信用卡公司。我知道我可以使用 JavaScript 自动提交表单,但这似乎是一个糟糕的解决方案(如果关闭 JS 会怎样?),但不知道如何在服务器端进行。
如果可能,请尽量避免涉及 AJAX 的解决方案,因为我对此知之甚少(总的来说,我是一个非常菜鸟的 Web 开发人员,并且只是继承了整个设置)。
将不胜感激有关如何记录此事件的更好的解决方案,或对这种混乱的一般建议!
对评论的回应:
致 Sam Dufel:很想换到像 Paypal 这样的其他提供商。不幸的是,我的公司实际上是一所大学的一部分,我们都必须使用相同的支付网关。
失败:使用 301 或 302 状态码会保留表单数据吗?我试着查了一下,看起来它可以与“get”一起使用,但我需要用“post”发送它,因为这是支付网关所期望的。
致 imthepitts:我们将其作为表单数据接收。
Revent:问题是根本没有创建订单(因此客户和订单信息只是放在临时购物篮/客户/订单表中)。似乎没有访问应该处理来自支付网关的表单数据的页面。我在该页面上添加了一些日志记录,但我的公司吓坏了,他们禁用了信用卡支付,所以我没有得到任何数据。如果我能说服他们我已经实施了一个很好的日志记录解决方案来快速识别错误的订单,他们会重新打开它。
致 Laksma:我们使用的是发回的唯一标识符。我所说的握手是支付网关验证他们已经与我们的服务器建立连接的某种方式。也许我用错了这个词。感谢您在接收页面上对日志的建议-我已添加。
致 Nenotlep:我知道我没有说过 AJAX,但我想更多地了解您的想法。对日志页面的调用会完全干扰表单提交吗?我假设它会被设置为触发表单按钮的“onclick”事件,然后表单提交会正常进行?如果它很容易设置,那么也许这将是一个很好的方法。
我正在考虑尝试 Sanjeev 的解决方案,因为这与我打算做的类似,但如果它真的那么简单,我实际上想更多地了解 AJAX 的想法,主要是因为它不会改变客户完全没有体验(不像看到重定向屏幕)。
对史蒂夫的补充回应:
我感谢您的意见,通常我喜欢自学新事物,但我现在实在是太不知所措了,甚至无法考虑处理新技术。