我希望允许我的客户用户输入他们的信用卡信息,以便我可以每月向他们收费。

我想知道应该如何保存这些信息?

应该保存在MySQL数据库(“用户”表)中还是这种信息太敏感而需要存储在其他地方?

我没有这方面的经验,如果有人能建议我如何实现这一点,我会很高兴。

谢谢。

有帮助吗?

解决方案

如上所述,不要将信用卡信息存储在数据库中。这是一个麻烦的根源。这样做将使您成为黑客非常有吸引力的目标,如果他们成功找回这些信息,您的业务就会结束​​,并可能毁掉您的生活以及那些信用卡号被盗的人的生活。

话虽如此,这里有三件事需要考虑:

1) 您最好的选择是使用提供定期计费的支付处理器/支付网关。一个例子是 Authorize.Net 的自动定期计费 服务。一旦您设置了订阅,他们将每月自动为您向用户收取费用,并让您知道交易结果。它可以为您节省大量工作,并免除您存储信用卡信息的责任。

2) 如果您确实存储信用卡号码,则必须遵循 PCI 指南. 。这些准则由支付卡行业制定,并定义您可以做什么和不能做什么。它还定义了信用卡信息的存储方式。您需要对信用卡号进行加密,并且您应该(但不要求)对相关信息(到期日期等)进行加密。您还需要确保您的网络服务器和网络的安全。不符合 PCI 合规性将导致您失去商家帐户并永远禁止拥有真正的商家帐户。这将限制您使用灵活性较差的第三方处理器。请记住,PCI 指南是一个良好的开端,但对于在线安全而言,它并不是“如何做”。您的目标是超出建议(很多)。

3) 州和国家/地区的具体法律取代 PCI 合规性。如果您遭受违规且信用卡号码被盗,您将面临刑事起诉的风险。各州的法律各不相同,并且不断变化,因为立法者才刚刚开始意识到问题的严重性。

就加密而言,请确保您了解哪些加密算法是安全的且尚未被破解。 河豚 是一个好的开始,如果您使用 PHP 加密库 被推荐 (例子).

其他提示

最安全的方法是 不是 将信用卡信息存储在您的系统上,但让 3RD 派对支付提供商为您做这件事。

您不需要使用 PayPal 等第三方支付提供商。– 但你需要 符合 PCI 标准 如果您要存储支付卡信息。阅读这篇关于 BC Ferries 因未及时遵守 PCI 合规性而面临巨额罚款 了解遵守 PCI 合规性的重要性。

我现在的雇主正在经历 PCI 合规性——这不是一个简单的过程,并且需要员工进行审核。执行情况取决于国家和州/省的法律 – 加拿大 IIRC 要求您获得 PCI 聘用委员会的 PCI 认证,而美国的一些州允许 PCI 合规审计公司代替 PCI 委员会。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top