如何遍历Stripe返回对象获取所有metadata并生成对应结果
解决方案
Stripe PHP SDK返回的$result->data是可遍历的集合对象,完全能用foreach循环遍历所有订阅条目,提取metadata并整理成数组,再根据内容判断返回结果。
步骤1:遍历所有订阅,收集metadata
// 初始化数组存储所有metadata $allMetadata = []; // 遍历每个订阅条目 foreach ($result->data as $subscription) { // 将当前订阅的metadata添加到数组中 $allMetadata[] = $subscription->metadata; }
步骤2:根据metadata内容返回对应结果
假设metadata1和metadata2是你预设的特定metadata结构(比如关联数组),可通过遍历收集到的metadata数组匹配:
$returnResult = ''; foreach ($allMetadata as $meta) { // 匹配metadata1的条件,根据实际结构调整判断逻辑 if ($meta == $metadata1) { $returnResult = 'subscribedtoplan1'; break; // 找到匹配项后停止遍历,如需匹配多个可移除break } // 匹配metadata2的条件 elseif ($meta == $metadata2) { $returnResult = 'subscribedtoplan2'; break; } } // 输出或返回结果 echo $returnResult;
补充说明
- Stripe的
data集合对象实现了PHP的Traversable接口,foreach可直接遍历,不存在不能遍历对象的问题。 - 如果你的
metadata是关联数组(比如['key' => 'value']),判断条件需对应调整,比如检查特定键值对:if ($meta['plan_key'] === 'plan1_value')。
内容的提问来源于stack exchange,提问作者jeff425
相关产品推荐
相关产品推荐

