You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中统计Stripe API返回JSON内发票数量的可靠方案问询

可靠统计Stripe发票数量的PHP实现方案

你当前用substr_count匹配字符串的方式风险很高——一旦Stripe API返回的JSON格式微调(比如空格、转义字符变化,或者其他字段出现类似字符串),统计结果就会出错。以下是两种更可靠的实现方式:

1. 原生PHP解析JSON

直接将JSON字符串解码为结构化数据后统计,完全依赖数据结构而非字符串匹配:

// 将JSON字符串解码为关联数组
$data = json_decode($result, true);

// Stripe列表类API的返回结果中,数据集合存于data字段
$invoiceCount = isset($data['data']) ? count($data['data']) : 0;

这种方式不受JSON格式的排版、转义变化影响,只要Stripe保持列表响应的结构规范,就能准确统计。

2. 使用Stripe官方PHP SDK

这是最推荐的方案,SDK会自动处理API响应解析、错误处理和分页逻辑:
首先通过Composer安装SDK:

composer require stripe/stripe-php

然后编写代码统计发票数量:

// 初始化Stripe客户端
\Stripe\Stripe::setApiKey('你的Secret Key');

// 获取发票列表(可添加筛选参数,如limit、created时间范围等)
$invoices = \Stripe\Invoice::all();

// 统计发票数量
$invoiceCount = count($invoices->data);

如果发票数量超过API默认分页限制(默认10条),需要统计全部发票的话,可以用SDK的自动分页迭代器:

$totalCount = 0;
foreach (\Stripe\Invoice::all()->autoPagingIterator() as $_) {
    $totalCount++;
}

关键提醒

永远不要用字符串匹配的方式处理JSON数据,JSON的格式灵活性(空格、键值对顺序、转义规则)会导致这种方法的稳定性极低,解析为结构化数据才是正确的处理方式。

内容的提问来源于stack exchange,提问作者Maurice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:01:35