database-design - 是否有必要存储支付网关处理的交易?

标签 database-design e-commerce

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

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

最佳答案

假设您不是指存储(甚至有权访问)卡数据(号码/CVV 等),这是完全不同的一回事,我建议您尽可能存储任何可以存储的数据;

  • 数据量极小,琐碎、廉价且易于存储
  • 能够仅在自己的系统上跟踪交易的每个细节以进行审计/客户查询等肯定比依赖其他人要好
  • 您可以在分析/报告方面使用它做任何您喜欢的事情,而无需依赖第三方网关提供的服务
  • 如果网关提供商破产怎么办?
  • 如果您决定更改网关或实现其他网关,您将能够维护规范化交易数据的中央存储

关于database-design - 是否有必要存储支付网关处理的交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534314/

相关文章:

SQL Server 数据库设计与外键混淆

sql - 我应该使用外部表中的外键或字符串值吗?

python - django-cart 还是 Satchmo?

events - Drupal 6 注册预订、付款预订系统

php - 为这些数据组织我的 MySQL 数据表的最佳方式是什么?

mysql - 处理具有数百万条记录更新和大量读取的 MySQL 表的最佳方法

database - 在数据库中存储标签的最有效方法是什么?

javascript - 如何展示单个产品?

search - 随机性对搜索结果的影响

php - 在 Woocommerce 编辑个人资料我的帐户页面中提供自定义注册字段