是否需要存储由支付网关处理的交易?

时间:2011-12-16 12:42:24

标签: database-design e-commerce

背景:我正在设计一个网站来在线托管一些服务。要使用任何服务,客户需要使用信用卡支付费用。交易由支付网关处理,支付网关记录所收集的金额,持卡人姓名,信用卡号码的最后四位数字和交易日期。如果返回成功响应,则将运行代码以更新客户数据库以使客户能够使用付费服务。否则,客户将被重定向到失败的交易页面。

问题:由于这是我第一次设计电子商务应用程序,我想得到一些建议。我的问题是,在将数据作为验证形式或出于会计目的发送到网关之前,是否需要在transaction表上单独存储将存储在支付网关中的内容。听取那些在设计电子商务应用方面有实际经验的人会很高兴。谢谢!

3 个答案:

答案 0 :(得分:2)

假设您没有提到存储(或甚至可以访问)卡片数据(数字/ cvv等),这是一个完全不同的鱼,我建议您随时存储任何可能的东西;

  • 它的数量很少,价格便宜,而且价格低廉。易于存放
  • 能够仅在您自己的系统上跟踪交易的每个细节以进行审计/客户查询等,这肯定比依赖别人更好
  • 您可以在分析/报告方面做任何您喜欢的事情而不依赖第三方网关提供的服务
  • 如果网关提供商破产怎么办?
  • 如果您决定更改网关或实施其他网关,您将能够维护标准化交易数据的中央存储

答案 1 :(得分:0)

我会记录客户名称,交易日期和时间,交易金额,支付网关响应但不是cc的任何细节,您不需要它,所以不要持有它。这将允许您分析网站的使用情况,发现网关可能出现的问题等。假设网关返回某种形式的交易ID,您可能也希望保留它。

答案 2 :(得分:0)

我是一个与电子商务合作的避风港,但我曾经为一家大银行工作过一次,而他们通常的政策是始终保持审计表中有关每个重要交易的数据。在系统中。

我相信这很重要,因为你总会有一个"回滚"如果您以后发现系统中存在错误,并且最重要的是如果您公司内部的某人试图欺诈或利用您的系统,那么如果您有审计表(我知道这听起来很偏执)会更容易但银行总是对安全感到偏执。)

最后,既然你正在处理其他人的钱,我认为你应该至少在一段时间内跟踪你的交易。例如,您可以创建一个触发器来擦除超过一年或两年的事务。