我需要为用户提供连接到我们系统的信用卡的最后 4 位数字(例如 Skype)。它应该看起来像:
我们将从您的卡中扣款 xxx-xxx-xxxx-1234
对于 CD 授权和收费,我们使用一些“支付网关”。不幸的是,他们没有任何基于交易号的 API 可以向我返回该数据。在我的本地数据库中保留最后 4 位数字是否合法,根据 PCI 可以吗?
或者也许有不同的方法可以做到这一点。
我需要为用户提供连接到我们系统的信用卡的最后 4 位数字(例如 Skype)。它应该看起来像:
我们将从您的卡中扣款 xxx-xxx-xxxx-1234
对于 CD 授权和收费,我们使用一些“支付网关”。不幸的是,他们没有任何基于交易号的 API 可以向我返回该数据。在我的本地数据库中保留最后 4 位数字是否合法,根据 PCI 可以吗?
或者也许有不同的方法可以做到这一点。
PCI 的定义点是主帐号是否存在(存储、处理或传输)。
PAN 的长度为 16-19 位。截断/屏蔽的 PAN 最多显示前六位和后四位。它可以显示较少提供它的这些子集。
在您提到的情况下,您只是在谈论最后四位数字。这不算作 PAN,因此 PCI 不适用,您完全可以存储和显示这些数字。
但是,不要忘记您从哪里获得数字。如果您的处理器返回完整的 PAN 并且您进行了替换/屏蔽,那么您将需要考虑 PCI,因为即使您不存储它,您也将传输(接收)和处理 PAN。
就这个 :)
We will charge your card:
<% card_info_xxx = @card_info.card_number.length - 4
1.upto(card_info_xxx) { concat 'x'.squish }
%><%= @card_info.card_number[-4..-1] %>