Stripe Embedded Checkout:预设可移除折扣码是否支持及解决方案?
Stripe Embedded Checkout 预应用折扣并允许用户移除的解决方案
当前通过discounts: [{ promotion_code: "promo_123" }]参数在Checkout Session中预应用的折扣,Stripe Embedded Checkout的UI默认不支持用户手动移除,这是产品当前的功能限制。以下是可行的解决方法:
方法一:使用促销码自动应用规则
- 在Stripe后台找到目标促销码(promo_123),开启「自动应用」(Auto-apply)开关,同时确保勾选「允许用户移除」(Allow removal)选项。
- 创建Checkout Session时无需传入
discounts参数,用户进入结账页面后,系统会自动应用该促销码,且UI会显示移除按钮,满足你的需求。
方法二:前端自动应用促销码(自定义逻辑)
- 创建Checkout Session时,设置
allow_promotion_codes: true,确保结账页显示促销码输入区域。 - 前端页面加载完成后,通过Stripe.js的API自动将目标促销码应用到会话,这样用户就能在UI中看到已应用的折扣并进行移除操作。示例代码:
const stripe = Stripe('你的Stripe公钥'); const sessionId = '你的Checkout Session ID'; // 检索会话并应用促销码 async function applyPromotionAutomatically() { await stripe.checkout.sessions.applyPromotionCode(sessionId, { promotion_code: 'promo_123' }); // 刷新结账组件或重新加载会话以同步状态 } applyPromotionAutomatically();
关键配置验证
无论采用哪种方法,务必在Stripe后台确认促销码的以下设置:
- 「允许用户移除」选项已勾选
- 促销码处于激活状态,无过期、使用次数等限制导致的冲突
内容的提问来源于stack exchange,提问作者Marving Moréton
相关产品推荐
相关产品推荐

