【发布时间】:2013-05-12 17:19:11
【问题描述】:
我在我的 Web 应用程序中使用 Braintree 支付网关。我想知道我是否可以从中获取用户信息。
我无法保存卡的详细信息,这是不允许的。但是如果我需要为同一个用户进行另一笔交易,我可以从 Braintree 本身获取他的信息并自动填写卡详细信息吗?
【问题讨论】:
标签: payment-gateway payment braintree customer-account-data-api
我在我的 Web 应用程序中使用 Braintree 支付网关。我想知道我是否可以从中获取用户信息。
我无法保存卡的详细信息,这是不允许的。但是如果我需要为同一个用户进行另一笔交易,我可以从 Braintree 本身获取他的信息并自动填写卡详细信息吗?
【问题讨论】:
标签: payment-gateway payment braintree customer-account-data-api
获得客户 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
【讨论】:
我在布伦特里工作。如果您想了解更多信息,而无法在 Stack Overflow 上轻松获得,请联系我们的support team。
像 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(不允许任何人存储),但不是必需的。
【讨论】:
<a data-token="f6j8">Edit</a>