braintree不必每次都输入信用卡数据

时间:2016-12-28 13:38:04

标签: braintree

假设我有一位已注册的客户已经提供了他的信用卡数据,我不希望他在下一次购买时再次输入,我该怎么做?现在我正在使用托管字段,每次测试时我都要输入信用卡数据。

1 个答案:

答案 0 :(得分: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,
  }
})

一旦他们的信息存储在Vault中,您就可以在事务API调用中传递他们的付款方式令牌,而不是nonce。