如何迭代Stripe订阅集合

Luk*_*uke 11 php stripe-payments

我目前正在与Stripe集成,在更新现有订阅之前,我需要检索所有现有订阅以找到正确的订阅ID.

但是,当我使用Stripe PHP库时,我似乎无法迭代实际的订阅集合.

这是我检索订阅集合的方式:

$subscriptions = $customer->subscriptions->all();
Run Code Online (Sandbox Code Playgroud)

我也尝试了这个,它应该是相同的,似乎并没有在最终结果上有所作为:

$subscriptions = \Stripe\Customer::retrieve( $customer->id )->subscriptions->all();
Run Code Online (Sandbox Code Playgroud)

对于理智的缘故,获得认购集合后,我echo一个count()就可以了,看看它有多少元素包括:

echo count( $subscriptions );  // echos '1' which is what I expect.
Run Code Online (Sandbox Code Playgroud)

当我print_r()完整的$subscriptions对象时,我确实看到了一个现有的订阅,所以我已经验证它已被检索.

然后我想简单地用一个迭代迭代集合foreach.这应该是可能的,因为StripeObject(返回集合的基类)实现ArrayAccess:

foreach( $subscriptions as $subscription )
{
   print_r( $subscription );
}
Run Code Online (Sandbox Code Playgroud)

但是,这不会导致任何结果.

如何正确迭代Stripe订阅集合?

Ywa*_*ain 12

条带"列表"API调用返回"列表对象"或"集合".这些objets在其data属性中包含实际列表.

在PHP中,您可以迭代这样的集合:

$subscriptions = $customer->subscriptions->all();

echo count($subscriptions->data); // Number of resources returned

foreach ($subscriptions->data as $subscription) {
    // Do something with $subscription
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你们在这里闲逛 您是否认为可以在Stripe参考文档中反映这些示例?它目前只显示非常基本的交互(即检索信息),但它并没有真正显示如何在检索后处理数据.为每个方法显示的JSON blob很不错,但如果你正在使用其中几乎所有东西都是抽象的库的话,它最终不会增加太多的价值. (4认同)