2

我在我的 Web 应用程序中使用 Braintree 支付网关。我想知道我是否可以从中获取用户信息。

我无法保存卡的详细信息,这是不允许的。但是如果我需要为同一个用户进行另一笔交易,我可以从 Braintree 本身获取他的信息并自动填写卡详细信息吗?

4

2 回答 2

5

我在布伦特里工作。如果您想了解更多信息,而无法通过 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(不允许任何人存储),但不是必需的。

于 2013-05-17T15:48:07.867 回答
1

获得客户 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

于 2015-06-25T10:45:12.743 回答