如何在Stripe Checkout会话中显示自定义税费、运费及折扣
如何在Stripe Checkout会话中添加自定义税费、运费和折扣信息
下面针对需求直接给出代码修改方案和说明:
一、自定义税费实现
有两种可选方式:
- 方式1:关联Stripe预创建税率
先在Stripe后台创建税率(Tax Rate)并获取ID,可在line_items的单个条目里添加tax_rates参数单独应用,也可在会话级别设置default_tax_rates统一应用到所有商品。 - 方式2:添加自定义税费条目
直接新增一个line_item,将名称设为“自定义税费”,金额设为你计算好的税费值(单位为最小货币单位,比如人民币分)。
二、自定义运费实现
新增一个line_item,将类型设为shipping,设置对应名称和金额即可,Stripe会自动识别为运费项在结账页面展示。
三、自定义折扣实现
推荐使用Stripe官方优惠券(Coupon)机制:先在Stripe后台创建优惠券并获取ID,通过discounts参数关联到会话;如果是一次性自定义折扣,也可创建临时优惠券后关联。
修改后的完整代码示例
// 示例:已计算好的税费、运费金额,及准备好的优惠券ID $taxAmount = 100; // 1元人民币(单位为分) $shippingAmount = 500; // 5元人民币(单位为分) $couponId = 'coupon_xxxxxx'; // 替换为你的Stripe优惠券ID // 追加运费、税费条目到商品列表 $lineItems[] = [ 'price_data' => [ 'currency' => 'cny', 'product_data' => [ 'name' => '自定义运费', ], 'unit_amount' => $shippingAmount, ], 'quantity' => 1, 'type' => 'shipping', // 标记为运费项 ]; $lineItems[] = [ 'price_data' => [ 'currency' => 'cny', 'product_data' => [ 'name' => '自定义税费', ], 'unit_amount' => $taxAmount, ], 'quantity' => 1, ]; $checkout_session = Session::create([ 'line_items' => $lineItems, 'metadata' => ['payment_type' => 'stripe','order_id' => $orderID], 'mode' => 'payment', 'success_url' => $stripeConstants->getSuccessUrl($orderID), 'cancel_url' => $stripeConstants->getCancelUrl($orderID), 'payment_intent_data' => [ 'metadata' => ['order_id' => $orderID], ], // 配置折扣 'discounts' => [ [ 'coupon' => $couponId, ], ], // 若使用统一税率,可添加此配置(与自定义税费条目二选一) // 'default_tax_rates' => ['txr_xxxxxx'], // 替换为你的Stripe税率ID ]);
注意事项
- 所有金额必须使用最小货币单位(如美元用美分、人民币用分)。
- 关联Stripe官方税率时,不要同时添加自定义税费条目,避免重复计算。
- 使用优惠券时,需确保优惠券在Stripe后台处于有效状态。
内容的提问来源于stack exchange,提问作者Sanjana Khan
相关产品推荐
相关产品推荐

