【问题标题】:Braintree default payment method is not updated when updating customer更新客户时不更新 Braintree 默认付款方式
【发布时间】:2016-11-05 14:05:45
【问题描述】:

我正在使用 BrainTree 插件 UI,并且正在生成客户端令牌,如下所示:

token = Braintree::ClientToken.generate(customer_id: some_id, options: {make_default: true })

然后通过以下方式更新客户:

Braintree::Customer.update(
    some_id,
  payment_method_nonce: options[:payment_method_nonce]
)

但是,所选信用卡并未设置为默认信用卡,因为检查customer.default_payment_method 总是返回同一张卡。那么更新客户时有什么线索可以更新默认付款方式吗?

编辑

在一些调查后,似乎当我添加新的付款方式时,它被设置为默认值,但是在选择保存的付款方式时,它不会设置为默认值。

我最终使用了以下代码:

Braintree::PaymentMethod.create(
  customer_id: some_id,
  payment_method_nonce: options[:payment_method_nonce],
  options: {
    make_default: true
  }
)

【问题讨论】:

    标签: braintree


    【解决方案1】:

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

    没错 - 您配置的 Drop-in UI 会将新创建的付款方式设为默认值,但不会对客户为特定交易选择的现有付款方式执行相同操作。

    为了获得您想要的结果,我建议使用credit card token from the transaction result object 更新付款方式,如this example

    result = Braintree::PaymentMethod.update(
      "the_token",
      :options => {
        :make_default => true
      }
    )
    

    【讨论】:

    • 谢谢,但是我没有直接向客户收费,而是将卡保存以备后用,我编辑了帖子以包含我用来实现此目的的最终代码,如果有请告诉我是更好的方法。
    猜你喜欢
    • 2015-10-10
    • 2015-04-03
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 2016-01-05
    • 2015-11-22
    相关资源
    最近更新 更多