如何在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
相关产品推荐
相关产品推荐

