我已经开始在电子商务网站上工作了。该网站将运行PHP和MySQL,并要求为用户提供信用系统;他们将能够使用信用卡付款,通过凭证或定期付款进行充值,以及退出。
现在我有信用卡处理API的经验,所以付钱进出应该不是问题;然而,问题是如何安全地存储信用信息。将其存储为单个数字字段并不完全理想,并且可能相当容易地暴露。我在想的是将每个用户的所有交易和信用记录保存在一个单独的表中,并且每次他们登录时都会重新计算他们的信用额度。然后在他们尝试进行的任何交易之前应用相同的内容。 我想听听您对如何实施这一点的想法。
编辑:只是为了澄清;我的问题不是如何处理信用卡,也不会存储信用卡信息。我将使用一个众所周知且安全的API来处理付款(例如通过paypal)。但是,根据信用卡付款,我需要以信用形式归因于相应的用户点。这些点将代表网站上的资金(虽然这笔钱将保留在公司账户上,直到用户尝试进行支付/取款)并将用于支付和提取资金。对于实际的支付处理,我会使用安全的API,但是我不确定如何从应用程序本身的结构角度正确地实现信用点。我不想使用简单的一个场点系统,因为我认为这非常危险。 我希望稍微澄清一下。
干杯
答案 0 :(得分:2)
这可能不是您正在寻找的答案,但这是我的2美分。
在我个人看来,除非您有人全天候监控您的专用服务器,否则您不应该以任何格式存储数据库中的信用卡号,这样做太冒险了。
去年我遇到的一个非常好的解决方案是BrainTree http://www.braintreepayments.com/。您可以设置一个非常好的信用卡支付系统,而不承担任何责任。他们的API允许服务器进行服务器和透明重定向(将表单发布到他们的站点并将其重定向回到您的站点)事务。同时,他们的Vault
服务允许您在其末端存储信用卡,并且您只需在服务器中使用令牌服务器API来处理付款。您可以在数据库中存储最后4位数字(它们在交易详细信息中提供)以及CC类型和令牌,这样您就可以显示下拉列表,供用户选择他们想要使用的卡片而您只需要在与他们的API交谈时使用令牌。
使用完整示例可以很好地记录API。我想你应该调查一下。
编辑: 我相信您应该有一个表,因为您建议将所有历史记录和'总计'字段存储在用户表中,该字段可用于在各个地方显示。每次进行的事务计算总数并将其缓存在此字段中以供使用。但是,在某些关键位置重新计算这一点是个好主意,以确保一切正常。即使此字段已公开,但您有一个完整的日志,可以帮助您在需要时重新计算所有内容。