让我们以不同的方式看待需求。目前它看起来像这样:
作为网站 X 的产品所有者,我希望系统临时存储客户的抄送详细信息,以便我可以恢复被抄送公司拒绝的销售
Ppl 倾向于这样思考并以这种方式请求功能。现在我认为您的要求更方便地描述如下:
作为用户,我希望网站 X 能够为我的购买重试付款,这样我就不必再经历一次结帐过程了,因为这在...
所以没有明确要求存储任何东西(在你这边)吗?它只暗示
支付提供商可以为您的商家帐户提供程序化 API,并能够在被拒绝的情况下尝试重新验证。我认为@bashmohandes 早些时候避开了这一点
并非所有支付提供商都能做到这一点,但我认为这取决于他们与相关银行的关系。那就是你想要避免的东西,即。与银行有着密切的关系。
场景1:假设我说的都是真的
除了对授权尝试的引用之外,您无需存储任何内容。一些支付提供商甚至为您提供了一个贴心的后台工具,因此您不必自己制作重新验证。我认为paygate会这样做
我相信你最好的选择是采访一些支付提供商。他们应该对这些东西了如指掌。这可能是一个零代码解决方案
场景 2:假设我完全错了,但从法律上讲,这种存储 CC 的东西是可以的
因此,您必须将这些数据临时存储在某个地方。我建议:
- 使用非供应商特定的 2 路加密方法(自然),因此您可以使用任何语言/平台来加密/解密
- 将加密/解密服务与您的应用程序分离,并将其视为黑匣子
- 使用公钥/私钥对该服务进行身份验证
- 将此机器放在具有自己提升的防火墙规则的专用网络上(不必是硬件防火墙,但硬件更好)
- 让您的应用服务器通过 ssl 与这台机器通信(您可以使用自签名证书,因为它在您的私有 LAN 上)
我在场景 2 中所建议的只是障碍,但最终持久性赢得了获取数据的竞赛。绝对保护数据的唯一方法是将您的服务器从以太网中拔出,但该选项有点激进:-)
场景1会很好。不会吗?