如何在后端手动完成Stripe Checkout会话以开展测试
无需前端UI触发真实checkout.session.completed事件的两种可行方案
方案1:使用Stripe CLI快速触发(最适合本地测试)
Stripe官方CLI内置了测试事件触发功能,测试模式下直接执行命令即可生成真实的checkout.session.completed事件:
stripe trigger checkout.session.completed
- 生成的事件完全由Stripe后台生成,和真实用户走完 checkout 流程产生的事件结构完全一致
- 如果你开启了CLI的webhook转发,事件会自动推送到你本地的测试端点,也可以后续通过
stripe.Event.list拉取到该事件。
方案2:纯API调用触发(适合集成到自动化测试用例)
不需要依赖CLI,直接通过Stripe API即可完成全流程:
- 正常创建你需要的Checkout Session(对应你业务里的配置,mode可选payment/setup/subscription,按你实际测试场景配置参数)
- 调用Stripe测试模式下的
checkout.Session.confirm接口,传入测试支付方法即可直接完成会话,无需跳转前端页面:
# 示例代码,基于Stripe Python SDK # 先创建Checkout Session,按你的业务逻辑传参 checkout_session = stripe.checkout.Session.create( payment_method_types=["card"], mode="setup", customer="cus_xxxxxx", # 你的测试客户ID success_url="https://your-domain.com/success", cancel_url="https://your-domain.com/cancel", ) # 直接confirm会话,用Stripe标准测试卡 confirmed_session = stripe.checkout.Session.confirm( checkout_session.id, payment_method="pm_card_visa", # 测试模式下可用的预置支付方法ID,不需要提前创建 )
调用完成后Stripe会自动生成checkout.session.completed事件,你可以直接从Events接口拉取,和真实流程产生的事件没有任何区别,所有字段、签名都是合法的,不需要自己手动拼接payload。
内容的提问来源于stack exchange,提问作者Vishnu Ks
相关产品推荐
相关产品推荐

