【问题标题】:I need to store only last 4 digits of credit card我只需要存储信用卡的最后 4 位数字
【发布时间】:2014-09-17 17:30:09
【问题描述】:

我正在使用 Braintree 作为支付网关。
我有一个要求,我只需要存储信用卡的最后 4 位数字、到期日期(根据 PCI 投诉)。
我已经在 javascript 中实现了前端代码,并且在向服务器发送数据时,信用卡信息被加密。
无论如何我可以在后端获取最后四位数字、到期日期和卡类型,或者我可以解密吗?

<form name="paymentForm" action="/createtransaction" method="post" id="braintree-payment-form">
   <p>
     <label style="color:white">Card Number</label>
     <input type="text" size="20" ng-model="userDetails.number" autocomplete="off" data-encrypted-name="number" />
   </p>
   <p>
     <label style="color:white">CVV</label>
     <input type="text" size="4" ng-model="userDetails.cvv" autocomplete="off" data-encrypted-name="cvv" />
   </p>
   <p>
     <label style="color:white">Expiration (MM/YYYY)</label>
     <input type="text" size="2" ng-model="userDetails.month" data-encrypted-name="month" /> / <input type="text" size="4" ng-model="userDetails.year" data-encrypted-name="year" />
   </p>
   <input type="submit" id="submit" />

【问题讨论】:

标签: java javascript payment-gateway credit-card braintree


【解决方案1】:

(披露,我为 Braintree 工作)

由于您使用的是客户端加密,因此您将无法获取信息,因为它在创建交易之前已被加密。但是,一旦您进行了交易,结果对象将包含卡号的前六位/后四位数字和到期日期。然后,您可以将这些值存储在您的数据库中。

它看起来像:

Result<Transaction> result = gateway.transaction().sale(
  ...
);
Transaction transaction = result.getTarget();
CreditCard creditCart = transaction.getCreditCard();
String last4 = creditCard.getLast4();
String expiration = creditCard.getExpirationDate();

【讨论】:

    【解决方案2】:

    由于您使用的是 Braintree 的 客户端加密 流程,根据他们的文档,您无法访问敏感信息(即信用卡号)的未加密版本。这样做是有目的的,以便您可以降低安全风险并保持 PCI 合规性。

    布伦特里states in this post:

    一旦用户按下包含他们的表单上的“提交”按钮 信用卡信息,您使用 Braintree 提供的 JavaScript 在表单发布到之前加密敏感字段的库 你的服务器。敏感的非加密数据不包含在 提交的表格,因此永远不会通过您的 系统。但是,您可以使用所有其他字段。这意味着 您可以执行自定义验证、格式化和记录到您的 心的内容,而不会将自己暴露于安全风险和 拥有未加密信用卡的额外 PCI 合规性要求 数据通过您的环境。

    另请注意,由于您无权访问解密密钥,因此无法解密数据。

    如果您想访问实际敏感的信用卡数据,那么我认为您必须采取不同的方法。 服务器到服务器 流程看起来是您最好的选择。 Braintree 表示:

    S2S 的工作方式类似于通过 HTTP 访问任何 API。第一的, 您在您的网站上创建一个表单,用户在其中输入他们的信用 卡数据、账单信息等。当用户提交表单时, 内容被发送到您的服务器。使用您收到的数据, 您使用他们的客户端库之一对 Braintree 进行 API 调用, 检查结果并向您的用户显示必要的信息。

    【讨论】:

      猜你喜欢
      • 2013-05-03
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 2011-04-14
      • 2012-07-11
      • 2014-02-24
      • 2021-08-07
      • 2014-12-01
      相关资源
      最近更新 更多