如何将已创建的payment intent关联生成stripe checkout session?
Stripe关联预创建Payment Intent与Checkout Session解决方案
核心操作非常简单,只需要在创建Checkout Session时传入payment_intent参数,赋值为你提前创建好的Payment Intent的ID即可完成关联。
注意事项
- 预创建的Payment Intent必须处于
requires_payment_method状态,不能是已确认、已取消、已支付的终态 - Payment Intent的
amount、currency、customer三个参数必须和创建Checkout Session时传入的对应参数完全一致,否则会报错 - 关联已有Payment Intent后,Checkout Session不需要再传入
line_items参数,金额、货币信息会直接从绑定的Payment Intent继承
调整后代码示例
你原有创建Payment Intent的代码无需修改,只需要调整创建Checkout Session的代码即可:
const session = await stripe.checkout.sessions.create({ success_url: "", cancel_url: "", mode: "payment", customer: customerId, payment_method_types: ["card"], payment_intent: paymentIntent.id // 新增该行,绑定预创建的Payment Intent });
补充说明
如果没有必须提前创建Payment Intent的特殊业务需求,更推荐直接省略手动创建Payment Intent的步骤,Checkout Session在payment模式下会自动生成对应符合参数要求的Payment Intent,可有效避免参数不匹配导致的报错。
内容的提问来源于stack exchange,提问作者markWanka
相关产品推荐
相关产品推荐

