Java 我只需要存储信用卡的最后4位数字
我正在使用Braintree作为支付网关。Java 我只需要存储信用卡的最后4位数字,java,javascript,payment-gateway,credit-card,braintree,Java,Javascript,Payment Gateway,Credit Card,Braintree,我正在使用Braintree作为支付网关。 我有一个要求,即我只需要存储信用卡的最后4位数字、到期日期(根据PCI投诉)。 我已经用javascript实现了前端代码,在向服务器发送数据时,信用卡信息是加密的。 我是否可以在后端获取最后四位数字、到期日期和卡类型,或者我是否可以对其进行解密 <form name="paymentForm" action="/createtransaction" method="post" id="braintree-payment-form">
我有一个要求,即我只需要存储信用卡的最后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" />
卡号
CVV
有效期(年月日)
/
由于您使用的是Braintree的客户端加密流,根据其文档,您无法访问敏感信息的未加密版本(即信用卡号)。这是有目的的,因此您可以降低安全风险并保持PCI合规性 大脑树: 一旦用户按下表单上的“提交”按钮 信用卡信息,您可以使用Braintree提供的JavaScript 用于在表单发布到之前对敏感字段进行加密的库 你的服务器。敏感的非加密数据不包括在 提交的表格,因此,将永远不会通过您的 系统。但是,您将可以使用所有其他字段。这意味着 您可以执行自定义验证、格式化和日志记录到您的 心满意足而不暴露于安全风险和 拥有未加密信用卡的额外PCI合规要求 通过您的环境传递的数据 还请注意,由于您没有访问解密密钥的权限,因此也无法解密数据 如果你想获得实际的敏感信用卡数据,那么我认为你必须采取不同的方法。服务器到服务器的流程看起来是您的最佳选择。Braintree说: S2S的工作方式类似于通过HTTP访问任何API。第一, 您可以在网站上创建一个表单,用户可以在其中输入其信用 用户提交表单时的卡数据、账单信息等, 内容将发送到您的服务器。使用您收到的数据, 您使用Braintree的一个客户端库对其进行API调用, 检查结果并向用户显示必要的信息 (披露,我为Braintree工作) 由于您使用的是客户端加密,您将无法获取信息,因为它在创建事务之前已加密。但是,一旦您进行了交易,结果对象将包含卡号的前六位/后四位数字和到期日期。然后可以将这些值存储在数据库中 它看起来像:
Result=gateway.transaction().sale(
...
);
Transaction=result.getTarget();
CreditCard creditCart=transaction.getCreditCard();
字符串last4=creditCard.getLast4();
字符串expiration=creditCard.getExpirationDate();
本文展示了您可以采用的几种不同流程:。你用的是哪一个?我用的是客户端加密