使用 Drop-In 处理不同的案例 UI

Handle Different Cases Using Drop-In UI

我正在尝试在我的网站上通过订阅服务使用 Braintree Drop-In UI。我如何告诉我的服务器如何创建订阅?

例如:

用户在保险库中已有付款方式,因此当他们点击提交时,我的服务器仅使用提供的付款随机数来创建订阅,因为他们使用了保险库方法。

但是,如果用户添加了新的支付方式怎么办?我的服务器如何知道为他们创建新的支付方式,因为它没有被保管,我不能只使用随机数来进行新的订阅?

我真正需要知道的是,我的服务器如何知道用户正在添加一种新方法,而不是使用已经在 Drop-In 中保存的方法 UI。

完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support

要使用现有支付方式创建订阅,首先生成一个 client_token,传入一个 customer_id

@client_token = Braintree::ClientToken.generate(
  :customer_id => a_customer_id
)

将此 client_token 传递到您的 Drop-in UI 后,客户以前的付款方式将包含在表格中。然后客户可以 select 这些付款方式中的一种,或者创建一个新的付款方式,新的付款方式将被 selected。

表单提交后,与 selected payment_method 相对应的 payment_method_nonce 将发送到您的服务器。然后,您可以调用 Subscription.create, passing in the payment_method_nonce. See our payment_method_nonce 文档以获取更多信息。

result = Braintree::Subscription.create(
  :payment_method_nonce => "payment_method_nonce",
  :plan_id => "silver_plan"
)