更新客户时不会更新Braintree默认付款方式

时间:2016-07-03 21:40:01

标签: braintree

我正在使用BrainTree drop-in 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
  }
)

1 个答案:

答案 0 :(得分:0)

完全披露:我在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
  }
)
相关问题