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

如何在Stripe结账会话中添加付款描述?

在Stripe结账会话中添加付款描述以优化导出筛选

需求:希望在Stripe结账会话中添加付款描述,使得在Stripe仪表板将付款详情导出为Excel文件时,能更方便地筛选付款数据。

付款详情导出示例

原结账会话代码

<?php
session_start();
require 'vendor/autoload.php';
include("conn_db.php");
$total_amount = $_POST["total-amount"];
$total_amount = (int)($total_amount  * 100);
$stripe = new Stripe\StripeClient("sk_test_51MBGiuHGbqwDRBAKP9yCcv2q4EltFvPh5UbpMCRCpn7PkS2diEAlKfoe4ZHsRJYLnHZt0qKExGlbb1UI962x70cn00mLE1tInW");
header('Content-Type', 'application/json');

$store_query = "SELECT * FROM store WHERE store_id = (SELECT store_id FROM cart WHERE user_id = {$_SESSION['user_id']} GROUP BY user_id)";
$store_arr = $mysqli->query($store_query)->fetch_array();
$store_id = $store_arr["store_id"];
$store_name = $store_arr["store_name"];

$query = "SELECT c.*, m.*, u.* FROM user u INNER JOIN cart c ON u.user_id = c.user_id INNER JOIN mitem m ON c.mitem_id = m.mitem_id WHERE c.user_id = {$_SESSION['user_id']} AND c.store_id = {$store_id};";
$result = $mysqli->query($query);
$line_items_array = [];

while ($row = $result->fetch_object()) {
    array_push(
        $line_items_array,
        [
            'price_data' => [
                'product_data' => [
                    'name' => $row->mitem_name,
                    'description' => $store_name,
                    'metadata' => [
                        'pro_id' => $row->mitem_id
                    ]
                ],
                'unit_amount' => (int)($row->mitem_price  * 100),
                'currency' => "myr",
            ],
            'quantity' => $row->cart_amount
        ]
    );
}

print_r($line_items_array);

$session = $stripe->checkout->sessions->create([
    "success_url" => ADD_URL . '?response=1&session_id={CHECKOUT_SESSION_ID}',
    "cancel_url" => FAILED_URL,
    "payment_method_types" => ['card'],
    "mode" => 'payment',
    "line_items" => $line_items_array,
    
]);
header("Location: " . $session->url);

修改方案

要实现导出Excel时的便捷筛选,可通过以下两种方式添加关键描述信息:

1. 给结账会话添加全局描述与元数据

在创建checkout.sessions时,新增payment_intent_data.description和metadata字段,这些信息会同步到付款记录中,导出Excel时会包含对应列:

$session = $stripe->checkout->sessions->create([
    "success_url" => ADD_URL . '?response=1&session_id={CHECKOUT_SESSION_ID}',
    "cancel_url" => FAILED_URL,
    "payment_method_types" => ['card'],
    "mode" => 'payment',
    "line_items" => $line_items_array,
    // 添加全局付款描述,会显示在付款记录的描述列
    "payment_intent_data" => [
        "description" => "来自{$store_name}的订单,用户ID: {$_SESSION['user_id']}"
    ],
    // 添加自定义元数据,支持更精细的筛选维度
    "metadata" => [
        "store_id" => $store_id,
        "store_name" => $store_name,
        "user_id" => $_SESSION['user_id']
    ]
]);

2. 优化订单项的描述信息

如果需要针对每个订单项补充细节,可修改line_items里的product_data.description,比如添加商品ID等信息:

'product_data' => [
    'name' => $row->mitem_name,
    'description' => "店铺:{$store_name} | 商品ID:{$row->mitem_id}",
    'metadata' => [
        'pro_id' => $row->mitem_id,
        'store_id' => $store_id
    ]
],

效果说明

  • payment_intent_data.description会填充到付款记录的“描述”字段,导出Excel后可直接对该列进行筛选。
  • 自定义metadata字段会在Stripe仪表板的付款详情中展示,导出Excel时会包含这些字段,支持按店铺ID、用户ID等维度精准筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 21:20:26