我如何使用 Braintree 保存客户卡信息,以便稍后他们购物时我可以从中扣款?
How do I save customer card information with Braintree so that I can then charge it later when they make purchases?
因此,在我的 iOS 应用程序(和 Java 后端)中,用户可以购买东西。当他们创建帐户时,他们需要向我们提供他们的支付卡信息。我希望能够在他们的帐户在应用程序中创建时保存此卡信息,并将其绑定到将用于查找的 UUID。此外,每当用户想要购买东西时,我希望能够根据他们的 UUID 轻松获取他们在注册时提供的付款信息,并从存储在其中的卡中扣款。这似乎是 Braintree 的一个极其常见的用例,但我无法在网上找到有关如何实现它的示例,我被卡住了。
那么我该如何:
- 根据UUID保存用户关联的卡信息?
和
- 根据UUID查卡信息,然后充值?
完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support.
创建客户时,您可以specify a customer ID and associate a payment method:
CustomerRequest request = new CustomerRequest()
.id("customer_123")
.paymentMethodNonce(nonceFromTheClient);
Result<Customer> result = gateway.customer().create(request);
为了稍后使用客户 ID 查找客户的付款方式信息,您可以调用 Customer.find()
然后检索该客户的付款方式:
Customer customer = gateway.customer().find("customer_123");
customer.getPaymentMethods().get(0).getToken();
或者,您可以create a transaction with a customer ID and an amount,这将自动使用客户的默认付款方式:
TransactionRequest request = new TransactionRequest()
.customerId("customer_123")
.amount(new BigDecimal("10.00"));
Result<Transaction> result = gateway.transaction().sale(request);
这里有一些关于 creating transactions and accepting credit cards with Braintree 的一般文档。
因此,在我的 iOS 应用程序(和 Java 后端)中,用户可以购买东西。当他们创建帐户时,他们需要向我们提供他们的支付卡信息。我希望能够在他们的帐户在应用程序中创建时保存此卡信息,并将其绑定到将用于查找的 UUID。此外,每当用户想要购买东西时,我希望能够根据他们的 UUID 轻松获取他们在注册时提供的付款信息,并从存储在其中的卡中扣款。这似乎是 Braintree 的一个极其常见的用例,但我无法在网上找到有关如何实现它的示例,我被卡住了。
那么我该如何:
- 根据UUID保存用户关联的卡信息? 和
- 根据UUID查卡信息,然后充值?
完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support.
创建客户时,您可以specify a customer ID and associate a payment method:
CustomerRequest request = new CustomerRequest()
.id("customer_123")
.paymentMethodNonce(nonceFromTheClient);
Result<Customer> result = gateway.customer().create(request);
为了稍后使用客户 ID 查找客户的付款方式信息,您可以调用 Customer.find()
然后检索该客户的付款方式:
Customer customer = gateway.customer().find("customer_123");
customer.getPaymentMethods().get(0).getToken();
或者,您可以create a transaction with a customer ID and an amount,这将自动使用客户的默认付款方式:
TransactionRequest request = new TransactionRequest()
.customerId("customer_123")
.amount(new BigDecimal("10.00"));
Result<Transaction> result = gateway.transaction().sale(request);
这里有一些关于 creating transactions and accepting credit cards with Braintree 的一般文档。