如何在不请求服务器端随机数的情况下停止 braintree 存储 payment_methode?

how to stop braintree to store payment_methode without asking for server side nonce?

我已经在我们的系统上安装了 Braintree 用于用户订阅,并且一切正常,除了 Braintree 的一个奇怪行为,它在没有我的服务器端随机数的情况下存储支付方式。

我的目标是让用户在其客户帐户中最多存储 3 种付款方式。

这是我每次用户添加付款方式时所期望的:

  1. 服务端生成SDK并发送给客户端
  2. 客户端向我发送随机数
  3. 服务器向 Braintree 发送随机数和客户 ID
  4. 脑树店顾客付款方式

这是我存储第一种付款方式后得到的结果:

  1. 服务端生成SDK并发送给客户端
  2. 客户端向我发送随机数
  3. 脑树已经存储了客户的支付方式!

如您所见,Braintree 存储 payment_method 而没有询问我第 3 步。这不好,因为这样我就无法限制存储在客户资料中的 payment_method 的数量。

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

听起来您正在将客户 ID 传递到客户端令牌生成中。因此,Drop-in UI 显示客户存储的付款方式和 automatically stores any new payment methods added by the customer in your Braintree Vault upon tokenization.

如果您正在使用 Drop-in version 1.18.0 or later, you can pass vaultCard as false in the dropin.create option. You could then Vault the card server-side using the store_in_vault_on_success 参数或从此处按照您想要的工作流程进行操作。