stripe default_source 和 default_ payment_method 有什么区别?

Sas*_*sha 5 stripe-payments

我使用以下代码将卡设为默认值:

 if ($form_state['input']['default'] == TRUE) {
      // Set the current card as default.
      try {
        $stripe->customers->update(
          $customer['id'],
          ['invoice_settings' => ['default_payment_method' => $card['id']]]
        );
      } catch (\Stripe\Exception\InvalidRequestException $e) {
        watchdog('store', $e->getMessage(), array(), WATCHDOG_ERROR);
      }
    }
Run Code Online (Sandbox Code Playgroud)

因为根据https://stripe.com/docs/api/ payment_methods/attach和https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_ payment_method 上的文档,建议使用该default_payment_method参数。

它可以很好地正确标记$customer['invoice_settings']['default_payment_method']数组值。

然而,当我通过 Stripe UI 添加一张新卡时,$customer['default_source']它会被默默地标记。

所以我想知道它们之间有什么区别以及哪个更适合使用?如果default_source是一个过时的遗留参数,那么为什么 Stripe 自己的 UI 一直使用它?

2023 年 1 月 10 日更新:除了已接受的答案之外,以下是 Stripe 支持部门关于该主题的更新:

在此输入图像描述

yut*_*ing 4

invoice_settings.default_payment_method是设置客户默认付款方式时建议设置的参数。default_source是遗留参数。

  • `default_source` 主要用于旧版支付源,因为一些用户仍在使用旧版 [Sources API](https://stripe.com/docs/sources),但尚未迁移到 [PaymentMethods API](https://stripe .com/docs/ payments/ payment-methods)。如果您的卡是旧版源 (`card_xxx`),则 `default_source` 将被更新。如果该卡是支付方式对象(`pm_xxx`),则`invoice_settings.default_ payment_method`将被更新。 (2认同)