2

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

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

回答

5

我在布伦特里工作。如果你需要更多的信息,你可以轻松获得堆栈溢出,请联系我们的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(这是任何人都不允许存储的),但不是必需的。

+0

是可能的Android应用程序来获取卡的信息..? – 2014-10-07 05:42:38

+0

@Pranav卡信息被返回到服务器,所以你可以随时做任何事情。通常,您会将其与您的某个用户关联,因此当他们登录后,您可以再次使用相同的信息。但是,这个答案已过时 - 我们有一个新的集成方法,你可以阅读有关在https://developers.braintreepayments.com/ – agf

+0

好的,谢谢你的回应.. – 2014-10-08 06:33:11

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