我在我的 Web 应用程序中使用 Braintree 支付网关。我想知道我是否可以从中获取用户信息。
我无法保存卡的详细信息,这是不允许的。但是如果我需要为同一个用户进行另一笔交易,我可以从 Braintree 本身获取他的信息并自动填写卡详细信息吗?
我在我的 Web 应用程序中使用 Braintree 支付网关。我想知道我是否可以从中获取用户信息。
我无法保存卡的详细信息,这是不允许的。但是如果我需要为同一个用户进行另一笔交易,我可以从 Braintree 本身获取他的信息并自动填写卡详细信息吗?
我在布伦特里工作。如果您想了解更多信息,而无法通过 Stack Overflow 轻松获得,请联系我们的支持团队。
像 Braintree 这样的支付网关的主要优势之一是它们可以标记信用卡信息,而无需您接触它。
基本上,您使用Braintree.js对浏览器中的卡片信息进行加密,这样您的服务器就永远不会看到它。
然后,您将该加密信息传递给 Braintree。作为回报,您将获得一个令牌"xg67ba"
,您可以稍后使用它再次向同一张卡收费:
result = Braintree::Transaction.sale(
:amount => "100.00",
:customer => {
:first_name => "Dan",
:last_name => "Smith"
},
:credit_card => {
:number => "encryped_credit_card_number",
:expiration_date => "encryped_expiration_date",
:cvv => "encrypted_cvv"
},
:options => {
:store_in_vault => true
}
)
result.transaction.customer_details.id
#=> e.g. "131866"
result.transaction.credit_card_details.token
#=> e.g. "f6j8"
所以下一次,它看起来像:
result = Braintree::Transaction.sale(
:amount => "10.00",
:customer_id => "131866",
:credit_card => {:cvv => 'encrypted_cvv'}
)
每张信用卡都与一个客户相关联,因此如果您只想从客户的唯一/默认卡中收取费用,您只需提供customer id
. 建议再次从客户那里获取cvv
(不允许任何人存储),但不是必需的。
获得客户 ID 后,您可以使用以下 PHP 代码获取客户详细信息。
$customerId = 67222186;
try{
$result = Braintree_Customer::find($customerId);
echo $result->id; echo "\n";
echo $result->firstName; echo "\n";
echo $result->lastName; echo "\n";
echo $result->email; echo "\n";
echo $result->phone; echo "\n";
} catch (Exception $e){
echo $e->getMessage();
}
http://www.web-technology-experts-notes.in/2015/06/manage-customer-details-in-braintree.html