PCI 合规性。将信用卡信息传递给第三方 API

PCI Compliance. Pass credit card information to a 3rd party API

我有一个请求信用卡信息以向第三方公司付款的应用程序。

我的应用程序捕获 CC、CVV、到期日期等,然后将这些信息传递给他们向客户收费的 API。

我一直在阅读有关 PCI 合规性的信息,但根据下图,我不太确定我需要满足什么级别的合规性。

最后,我想弄清楚如果我从同一个客户那里购买新产品,什么对我来说是最好的选择。由于我不向客户收费但第三方收费,如何存储付款信息的最佳方式才能让用户无需在每次使用我的服务时都输入他的信息?从 PCI 合规性的角度来看,将支付信息存储在我的服务器上会有什么影响?有没有一种方法我不需要为用户存储支付信息,但我可以将他们的信息(如果他们是回头客)传递给第 3 方 API 并且仍然符合 PCI 标准?

由于您正在构建一个 Web 应用程序(甚至嵌入到 Facebook Messenger 中),如果您正在构建收集卡片数据的表单,您将属于 "Shopping Cart - Payment Page Direct Post"(即A-EP) 或 "Shopping Cart - Payment Page Not Outsourced"(即 D-Merchant)。如果可以的话,你真的想成为 A-EP,但你可能做不到。

两者的区别在于卡片数据是否通过你的服务器。使用"Direct Post",网页自己将数据(通常通过HTTPPOST)发送到支付API,你没有办法捕获它。使用 "Not Outsourced",数据返回到您的服务器,然后服务器调用付款 API 并将其传递。在这种情况下,您将不得不完成整个 D-Merchant 调查问卷(迄今为止最长的,除了 D-Service Provider),并且可能设置了一个特殊的环境来防止任何人试图读取卡片传输服务器时的数据。

确实没有值得存储的卡数据部分来尝试识别重复购买者,因为您没有支付数据来实际完成支付。相反,您应该查看您的支付服务提供商是否提供任何类型的“token”,稍后可用于识别该支付数据。如果是这样,您可以将该令牌与客户相关联(无论您如何识别客户)并在他们 return 时重新使用它。

进一步阅读:https://www.pcisecuritystandards.org/documents/SAQ_InstrGuidelines_v3-1.pdf