2016-12-28 44 views
0

假設我有一位已經註冊過的客戶,他已經提供了他的信用卡數據,並且我不希望他在下一次購物時再次輸入,我該怎麼做?現在我正在使用託管字段,每次測試時都必須輸入信用卡數據。braintree每次都沒有輸入信用卡數據

回答

1

確保客戶的信息(包括付款方式信息)存儲在Braintree Vault中。

您可以自行創建客戶,使用付款方式或使用帶有帳單地址的信用卡。客戶創建的例子;

result = braintree.Customer.create({ 
    "first_name": "Charity", 
    "last_name": "Smith", 
    "payment_method_nonce": nonce_from_the_client 
}) 


result.is_success 
# True 

result.customer.id 
# e.g 160923 

result.customer.payment_methods[0].token 
# e.g f28w39 

如果您打算創建的同時爲客戶交易時,您可能需要使用Transaction.sale()與任options.store_in_vault_on_successoptions.store_in_vault options。例如:

result = braintree.Transaction.sale({ 
"amount": "10.00", 
"payment_method_nonce": nonce_from_the_client, 
"customer": { 
    "id": "a_customer_id" 
}, 
"options": { 
"store_in_vault_on_success": True, 
    } 
}) 

一旦他們的信息被存儲在庫中,您可以通過自己的付款方式令牌交易API調用,而不是一個隨機數。

+0

非常感謝回答這個問題 –

+0

嗨再次@ThinkAboutIt另一個問題,我想知道訂閱,我檢查了braintree源代碼,並找不到任何他們做「store_in_vault_on_success」:真的,當涉及到訂閱。訂閱時會自動啓用嗎? –

+0

順便說一下,我查看了文檔,並注意到他們使用'storeInVaultOnSuccess'而不是「store_in_vault_on_success」,這是正確的? –

相關問題