Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我只需要存储信用卡的最后4位数字_Java_Javascript_Payment Gateway_Credit Card_Braintree - Fatal编程技术网

Java 我只需要存储信用卡的最后4位数字

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">

我正在使用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" />


卡号

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();

本文展示了您可以采用的几种不同流程:。你用的是哪一个?我用的是客户端加密