如何在数据库中保存信用卡数据?

时间:2016-06-01 21:46:12

标签: database-design stripe-payments credit-card braintree authorize.net-cim

我正在开发一个应用程序,其中需要存储整个信用卡号码。这可以使用任何API吗?

我已阅读有关Authorize.net Customer Payment Profile选项的信息,但当您尝试检索该付款资料时,它只会提供最后4位数字。

我还检查了Braintreev.zero API,它提供了前6位和后4位以及Stripe的客户创建选项,但它也给出了只有最后4位数。

如果没有可用的API,存储信用卡号码的唯一方法是使用PCI DSS存储那些内部信用卡?

2 个答案:

答案 0 :(得分:9)

披露:我为Stripe工作

是的,在内部存储客户卡信息的唯一方法是在符合PCI的系统中这样做。您存储它们的任何地方,以及您处理它们的任何方式,都必须符合PCI标准。

使用支付处理器(例如Stripe)带来的最大好处之一就是它们可以为您处理(非常,令人难以置信的,可怕的)PCI合规性工作。作为该承诺的一部分,他们不会发布他们不知疲倦地保持安全的信用卡详细信息。

如果您愿意经历严格的 - 并且仍然符合PCI标准,您可以采用符合PCI标准的方式收集和存储卡号,并使用Stripe的API创建卡[0],然后制作费用。请注意,您必须符合PCI标准才能以这种方式使用Stripe的API,否则您将违反服务条款。

如果您可以更全面地解释应用程序将使用存储的信用卡号码做什么,也许有人可以建议一种不需要在本地实际存储卡信息的替代方法。

[0] https://stripe.com/docs/api#create_card-source-number

答案 1 :(得分:1)

在任何情况下都不得存储客户的信用卡信息。解释为什么你认为你需要那个; Stripe API可能会做你想要的。例如,如果您想向之前付款的客户收取经常性费用,请使用customer subscription

在任何情况下都不得存储客户的信用卡信息。如果Stripe抓住你试图这样做,他们可能会禁止你。这很好,因为如果Stripe没有抓住你,犯罪分子会。犯罪分子就是从TargetWalmart中提取信用卡信息的那种。