存储付款信息

时间:2017-04-19 10:23:07

标签: java jsp web-applications payment-gateway payment

这是关于存储和检索网络商务应用程序支付信息的一般性问题

我们目前的做法是让用户在第三方网络表单上重定向后输入付款详细信息,类似于PayPal可能执行的操作。

为了使重复订单更容易,显然需要存储付款信息详细信息,例如信用卡号,PII信息。

由于这具有严重的安全隐患,我想知道普遍接受的最佳做法是什么。基本上是否建议使用Stripe等其他工具处理所有这些问题?或者让其他人采用内部解决方案?

作为参考,我们正在使用Java Servlets / JSP。

2 个答案:

答案 0 :(得分:0)

我不知道你为何投票。这实际上是一个有趣的问题。

这个问题的一般答案是,不存储任何内容。让Paypal的第三方支付网关为您做到这一点。

这不仅涉及安全性(您可能会做错),还必须处理法规,例如存储信用卡等敏感数据的权利。

另一种非常冒险且应该避免的答案是将其存储在浏览器的会话存储中。对于此answer,会话存储相当安全。请记住使用HTTPS并预防XSS。但同样,我不建议这样做。

答案 1 :(得分:0)

你的问题范围相当广泛,“最佳做法”通常是个人偏好和偏见的另一个词。

...然而

在大多数国家/地区,要处理信用卡详细信息,您需要与银行达成协议(通常称为“持卡人不在场”),银行将在您采取此安排时对您施加相当严格的安全要求。在英国,这些要求被称为“支付卡行业数据安全标准(PCI DSS)”。

这里有各种选择 - 大型在线商店可能会投资存储基础设施的付款细节,但满足所需安全标准的成本非常高。

您还可以通过payment gateway - 一家中介公司来管理与银行的互动。它们通常有几种不同的集成选项 - 从“Paypal-like”重定向到允许您收集信用卡数据的API,并通过API传递以验证付款。许多支付网关允许您将支付详细信息存储在其基础架构上(符合PCI标准),并检索令牌以供将来付款。

这个过程就像:

customer places first order
customer enters payment details
payment gateway verifies payment details
payment gateway collects payment
payment gateway stores payment details
payment gateway sends token to website
website stores payment token with customer profile
customer places second order
website retrieves payment token
website asks "use previous payment details"
customer agrees
website sends token to payment gateway
payment gateway retrieves payment details
payment gateway collects payment
payment gateway tells website payment succeeded