如何安全地实现3d安全支付



我想知道接受需要三维安全验证的信用卡付款的最佳方式是什么。目前的结账流程是这样的:

  1. 客户提交付款
  2. 支付网关返回一个错误,说明该卡需要三维安全代码处理。返回响应中的ACS URL
  3. 我将用户重定向到发卡行的验证站点,并在验证完成后为ACS传递一个回调URL以进行重定向
  4. 客户输入验证码,ACS重定向到带有指示验证成功的授权令牌的回调URL
  5. 要完成该过程,我必须将带有授权令牌的原始请求重新提交给支付网关

我的问题在最后一步。由于我需要重新提交原始请求(其中包含客户的信用卡信息),我需要将其临时存储在某个地方,以便在调用回调URL时检索它。有其他选择吗?

我正在考虑尝试一个iframe解决方案:原始表单从未关闭,我在iframe中显示验证过程。当这个过程完成时,即调用回调url时,我隐藏iframe并用所需的值更新原始表单,然后重新提交。以前有人尝试过这种技术吗?


正如您在链接的文章中可能已经注意到的,在iframe中显示银行页面是一个首选选项。尽管如果你进一步阅读,它提供了其他安全功能,特别是在网络钓鱼保护方面。因为你的客户不知道他到底把密码发给了谁。

但回到你的提议,如果你在iframe或弹出窗口中展示它,你就可以将原始表单存储在你的基本页面上,然后用收到的身份验证令牌重新提交。这是一个非常好的主意,因为你不需要做任何PCI合规的事情。因此,它不仅对你来说更容易,建议你:)。

使用Sage Pay(我认为是其他支付提供商),您不需要在最后一步再次传递完整的订单信息,只需要3D Secure表单中的响应代码和唯一的交易参考。因此,无需存储卡的详细信息。

对我来说,这个过程是:

  1. 卡详细信息等以及提交给支付网关的唯一交易参考
  2. 支付网关通过3D安全详细信息(ACSURL和参考代码)进行响应
  3. 将用户重定向到3D安全表单(传递参考代码和回调URL),用户在其中输入详细信息
  4. 验证码传回回拨URL
  5. 服务器必须将步骤1中的验证码和相同的交易参考发送到支付网关
  6. 支付网关以成功/失败信息进行响应

我最近做了一些关于3d安全的工作。根据我的个人经验:

  1. 我将带有转发url的信用卡信息传递给银行3d安全url
  2. 用户被重定向到3d安全url,并被提示输入密码
  3. 当他点击continue时,用户会被传递到带有授权令牌的转发url——信用卡信息也会随之传递

最新更新