【问题标题】:Retrieve a Customer's Subscription ID from Stripe从 Stripe 检索客户的订阅 ID
【发布时间】:2015-02-14 01:15:45
【问题描述】:

在 Rails 中,我正在尝试实现一个控制器操作,该操作将允许客户更改他们订阅的计划。根据 Stripe 文档,可以按如下方式完成:

customer = Stripe::Customer.retrieve("CUSTOMER_ID")
subscription = customer.subscriptions.retrieve("SUBSCRIPTION_ID")
subscription.plan = "premium_monthly"
subscription.save

我将每个客户的 ID 保存在我的数据库的用户表中,但我不知道如何在给定客户 ID 的情况下检索客户的订阅 ID。此项目中的每个客户将只有一个订阅,我如何根据他们的客户 ID 提取此订阅?

【问题讨论】:

    标签: ruby-on-rails stripe-payments


    【解决方案1】:

    relevant part of the Stripe API reference 建议在检索客户后,您将有权访问包含 URL 的订阅属性,您可以通过该 URL 访问订阅列表。

    但是,on creating a subscription,Stripe 会将订阅连同订阅 ID 返回给您。我建议将其作为客户模型的属性存储在您的数据库中(如果他们只有一个订阅),或者我使用的方法是在我的数据库中有一个订阅模型,它存储一些经常访问的数据和避免过多地 ping Stripe API。

    【讨论】:

    • 谢谢,我查看了 API 并找到了您提到的 URL。不过,我对使用 Stripe(以及一般的 API)仍然很陌生,并且不确定如何使用该 URL 将订阅 ID 保存到变量中。
    • 它们就像 Ruby 对象一样工作。请记住,subscriptions 属性返回一个数组,但调用 customer.subscriptions.first.id 将检索第一个订阅的 id(并且唯一根据您的问题)。
    • "自 API 版本 2019-08-14 → 2020-08-27 以来的更改 默认情况下不再包含客户的订阅属性。您可以扩展列表,但出于性能原因,我们建议不要这样做除非需要。” stripe.com/docs/api/expanding_objects
    【解决方案2】:

    “检索您将有权访问订阅的客户”

    2019 年的 API 就是这种情况。

    自 API 版本 2019-08-14 → 2020-08-27 以来的更改 默认情况下,不再包含客户的订阅属性。您可以展开列表,但出于性能原因,我们建议您不要这样做,除非需要。

    https://stripe.com/docs/api/expanding_objects

    示例代码(PHP):

    $stripe = new \Stripe\StripeClient(YOURSTRIPE_SECRETKEY);
    $stripe_customer = $stripe->customers->retrieve($payerid, [ 'expand' => ['subscriptions'] ]);
    $stripe_status = $stripe_customer->subscriptions->data[0]->status;
    

    我仍在尝试找出“推荐的方式”,并希望能够报告。

    【讨论】:

    • 帮助:教程:如何将 Paypal 订阅 API 与 PHP 和 Javascript 集成(2021)-完整指南stacklounge.de/6325/…
    猜你喜欢
    • 1970-01-01
    • 2022-11-25
    • 2013-04-01
    • 2018-05-21
    • 2017-12-30
    • 2015-07-26
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多