【问题标题】:Braintree's Dropin UI, How to remove payment methodBraintree Dropin UI,如何删除付款方式
【发布时间】:2015-03-11 21:01:23
【问题描述】:

我们正在使用 Braintree 的 dropin UI 来帮助节省创建自定义支付入口页面的时间。难以理解的是为什么您只能添加新的付款方式而不能删除。我知道可以添加,但如果给定的付款方式有问题(稍后)。它永远存在,因为客户无法删除付款方式。我想删除付款方式的唯一方法是为我们编写一个自定义 UI(从而破坏了使用 dropin UI 开始的目的)。客户是否无法使用 dropin UI 删除付款方式?

【问题讨论】:

  • 似乎添加和删除是非常基本的用例。添加在那里。如果有删除,则可以完成更新(通过删除然后添加)。因此,基本上,如果您的客户犯了错误(比如在他或她的到期日)或卡通过使用 dropin 到期,那么您的客户基本上会永远被上述付款方式所困扰。除非您编写自定义实现,调用 API 服务器端,否则会违背整个“dropin”概念的目的。也许braintreepayments.com/features/drop-in 应该更新为“无法删除付款方式”。
  • 我认为在为客户添加验证之前不会运行“超限”或“致电银行”验证。我知道“数据输入”验证是针对卡进行的,例如无效号码。但我正在测试模拟创建错误付款的沙盒。支付方式将留在 dropin UI 中,用于“超出限制”、“被盗”、“致电银行”。
  • 另外,现在它支持轻松添加 PayPal 账户...我们看到很多迹象表明人们让朋友添加他们的 PayPal 账户作为付款方式:他们非常信任 (但这是我们在这里谈论的“真实”人),他们正在为自己的跌倒做好准备。
  • 不能再同意了。用户应该可以选择删除付款方式。
  • 此外,即使更新卡的到期日期也无法完成 - 它不会让用户添加具有新日期的同一张卡。我们现在才刚刚开始接触真实用户,但由于此类问题,我们正在努力从 Drop-in UI 迁移出来。

标签: braintree


【解决方案1】:

Braintree 的 DropIn UI 不允许用户删除或更新已保存的付款方式。 但有办法做到这一点。例如,如果您有一个客户资料页面,他们可以在其中管理他们的设置,您只需添加一个菜单,显示与客户关联的所有付款方式。

为此,您可以简单地使用一些 Braintree 函数,这些函数在此处进行了说明:https://developers.braintreepayments.com/guides/payment-methods/php

我们的想法是使用以下方式获取与客户相关的所有付款方式:

$customer = Braintree_Customer::find('a_customer_id');
$customer->paymentMethods // array of Braintree_PaymentMethod instances

它将为所有支付方式返回一个对象。然后您可以通过单击特定付款方式类型here(信用卡、贝宝...)从同一页面检查该对象的响应

获得这些值后,您可以将它们显示在表格中,并添加一个简单的按钮或任何您想要删除该付款方式的按钮。 为此,您可以使用以下函数将 TOKEN 作为参数传递

 $result = Braintree_PaymentMethod::delete('the_token');
 /*(token is a value of the object that comes from $customer->paymentMethods*/

最后,您可以检查控制 $result 值(真或假)的响应

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    August 7, 2018 周围添加了使用 Braintree 插件 UI 删除保管付款方式的功能,并且可在 Braintree-web-drop-in 1.12.0+ 中使用。 This feature is now listed in their documentation:

    姓名vaultManager

    类型boolean

    属性optional

    默认false

    说明

    当与带有客户 ID 的客户令牌一起使用时,是否允许客户删除已保存的付款方式。注意:从 Drop-in 中删除付款方式将永久删除付款方式,因此不建议使用 Braintree 循环计费系统的商家使用此选项。 Internet Explorer 9 不支持此功能。

    要启用“保管库管理器”(删除保管的付款方式的功能),请在创建插件时设置vaultManager: true

    braintree.dropin.create({
      authorization: 'CLIENT_AUTHORIZATION',
      vaultManager: true,
      /* your other braintree options */
    })
    

    【讨论】:

      猜你喜欢
      • 2017-10-01
      • 2020-01-28
      • 1970-01-01
      • 2015-06-19
      • 2015-07-12
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      相关资源
      最近更新 更多