groupon.com 是一个很好的例子,当您注册时,他们会获取您的信用卡信息。一旦有限数量的人购买了优惠券,就会向大量信用卡收取费用。以最安全的方式做这样的事情的最佳方法是什么?我将要做的一件事是使用一种加密方法对数据库中的信用卡进行加密,该加密方法对加密进行加盐,并且我可以在需要时对其进行解密以使用它。他们是否可能有一个 cron 在一段时间内检查并查看优惠券时间限制是否已过期然后进行大规模收费?我无法思考如何编写将交易费用排队给商家的东西。我正在考虑使用 authorize.net 或 paypal pro .. 你对我所说的话有什么看法?
2 回答
不要将信用卡信息存储在您的服务器上。它需要遵循 PCI DSS 安全标准:
http://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard
这些天没有理由这样做。很大比例的支付处理供应商为您提供这些服务。您提交信息并收到一个代币,该代币可用于稍后从卡中扣款。
此外,您不得存储 CVV 代码。
我个人使用 Paypal 作为处理方,您需要请求参考交易(这将需要背景调查,可能与信用相关,并且不保证会被批准)。通过这种方式,我可以对卡进行授权(仅 1 美元的授权是常见且公认的做法),然后从卡中收取适当的金额(在我们的例子中,我们有一个类似于即用即付手机的支付模式)。在第一次收费或授权时,我会收到一个令牌,我可以稍后使用它来对“参考交易”收费(基本上只是从原始 txn 复制详细信息)。
我们研究的另一个非常有趣的选择是 www.paysimple.com,他们现在有一个新的 API,一个有吸引力的定价结构,如果记忆有用,所有上述功能。
还有许多其他的存在,你可以而且应该研究。但请注意,一些卡处理提供商不会为上述功能收取任何费用(paypal 不收取),但有些服务会收取大量费用。看,它通常是网站上现成的信息。
开始阅读 Magento 等开源购物车源代码的 PCI 合规性和定期支付部分。如果你想正确地做这一切,它有很多。