【问题标题】:how to fetch subscriptoin information from stripe response如何从条带响应中获取订阅信息
【发布时间】:2022-04-09 19:05:40
【问题描述】:

我使用以下代码行来获取客户信息。

$customer = Stripe_Customer::retrieve($customer->id);

我正确地得到了来自条带的响应。这是我 print_r($customer->subscriptions);

时的响应
Stripe_List Object
(
    [_apiKey:protected] => sk_test_LteiEDqVirhMuUt3IzzxUHkU
    [_values:protected] => Array
        (
            [object] => list
            [data] => Array
                (
                    [0] => Stripe_Subscription Object
                        (
                            [_apiKey:protected] => sk_test_LteiEDqVirhMuUt3IzzxUHkU
                            [_values:protected] => Array
                                (
                                    [id] => sub_7SLD31Rqg3Qi5Z

我的问题是如何获取订阅 ID(这里是 sub_7SLD31Rqg3Qi5Z)。我试图通过 $customer->subscriptions['data']['id'] 获得它,但没有运气。

非常感谢任何帮助。

【问题讨论】:

  • $customer->subscriptions['data'][0]['id'];

标签: stripe-payments


【解决方案1】:

$customer->subscriptions['data'] 是一个列表,所以需要通过索引来访问。这是因为一个客户可以拥有多个订阅。

您可以通过以下方式检索每个订阅的 ID:

for($i = 0; $i < $customer->subscriptions->total_count; $i++) {
  $subscription = $customer->subscriptions->data[$i];
  echo $subscription->id;
}

一些不相关的注释:

  • 您应该使用 echo 而不是 print_r() 来输出 Stripe 对象。 echo 将显示格式良好的 JSON 表示。

  • 因为您使用了print_r(),所以您的问题包括您的 API 密钥。即使它“只是”测试密钥,您也不应该泄露 API 密钥。您应该编辑您的问题以屏蔽 API 密钥(将其替换为 sk_test_... 之类的内容),然后前往您的 dashboard 推出新的秘密测试密钥(通过单击密钥旁边的小“回收”图标)。

【讨论】:

    【解决方案2】:

    以下代码将按客户 ID 为您提供所有订阅。

    $stripe = new \Stripe\StripeClient(YOUR_STRIPE_SECRET);
    
    $customer = $stripe->customers->retrieve(
        $stripeCustomerId,
        ['expand' => ['subscriptions']]
    );
    
    $subscriptions = data_get($customer, 'subscriptions.data');
    
    // to get all subscription IDs
    $subscriptionIds = data_get($customer, 'subscriptions.data.*.id');
    
    

    希望它会有所帮助。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2018-04-23
    • 2020-04-23
    • 2018-10-17
    • 2017-03-07
    • 2022-10-15
    • 1970-01-01
    • 2018-07-18
    • 2016-09-25
    • 2011-08-18
    相关资源
    最近更新 更多