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

如何用PHP结合Stripe API生成含指定发票信息的表格

使用PHP和Stripe API生成发票表格

首先,$stripe->invoices->all()返回的是包含发票对象的集合,直接echo只会输出对象的字符串表示,没法直接用于表格展示。你需要遍历这个集合,提取目标字段后生成HTML表格。

注意两个关键细节:

  • 发票里的customer字段默认是客户ID,不是客户名称,需要展开关联的客户对象或者单独查询客户信息
  • Stripe返回的金额是以最小货币单位存储的(比如美元是分,人民币是分),需要转换成正常的金额格式

完整代码示例

<?php
// 初始化Stripe客户端(确保已正确配置API密钥)
require_once('vendor/autoload.php');
\Stripe\Stripe::setApiKey('你的Stripe秘钥');

// 获取发票列表,同时展开关联的customer对象,避免额外API请求
$invoices = $stripe->invoices->all([
    'limit' => 100,
    'expand' => ['data.customer'] // 自动加载每个发票对应的客户信息
]);
?>

<!-- 生成HTML表格 -->
<table border="1" cellpadding="8" cellspacing="0">
    <thead>
        <tr>
            <th>发票ID</th>
            <th>客户名称</th>
            <th>金额</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($invoices->data as $invoice): ?>
            <tr>
                <!-- 输出发票ID -->
                <td><?php echo htmlspecialchars($invoice->id); ?></td>
                <!-- 从展开的客户对象中获取名称,兼容无名称的情况 -->
                <td><?php echo htmlspecialchars($invoice->customer->name ?? '未命名客户'); ?></td>
                <!-- 转换金额格式:最小单位转正常数值,保留2位小数并附带货币单位 -->
                <td><?php echo number_format($invoice->amount_due / 100, 2) . ' ' . $invoice->currency; ?></td>
            </tr>
        <?php endforeach; ?>
    </tbody>
</table>

代码补充说明

  • expand参数:在获取发票时直接加载关联的客户数据,避免循环里重复调用客户查询API,提升效率
  • htmlspecialchars():防止输出内容引发XSS攻击,保证页面安全
  • 兼容处理:用??运算符处理客户无名称的情况,避免报错

如果你的Stripe SDK版本较旧不支持expand参数,可以在循环内单独查询客户:

// 在循环中添加以下代码获取客户信息
$customer = $stripe->customers->retrieve($invoice->customer);
$customerName = $customer->name ?? '未命名客户';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:01:12