使用Stripe CLI触发checkout.session.completed事件遇阻求助
解决Stripe CLI触发checkout.session.completed事件异常的问题
核心原因
Stripe CLI默认生成的测试支付意向(Payment Intent)会处于requires_action状态,因为模拟了需要3DS验证的场景,导致Checkout会话无法直接进入completed状态。
有效解决方案
你需要指定Stripe官方提供的无需3DS验证的测试卡号,同时强制确认支付意向,执行以下命令:
stripe trigger checkout.session.completed --card=4242424242424242 --add payment_intent:confirm=true
或者手动指定完整卡信息的命令:
stripe trigger checkout.session.completed --override payment_method:card[number]=4242424242424242 --override payment_method:card[exp_month]=12 --override payment_method:card[exp_year]=2030 --override payment_method:card[cvc]=123 --add payment_intent:confirm=true
原理说明
- 卡号
4242424242424242是Stripe官方测试卡,使用它可以跳过3DS验证,直接让支付意向进入succeeded状态。 --add payment_intent:confirm=true参数会强制确认支付意向,确保Checkout会话流程完整触发checkout.session.completed事件。
验证步骤
- 执行命令后,查看Stripe CLI输出,确认是否出现
checkout.session.completed事件的ID。 - 登录Stripe后台的事件日志,搜索该事件ID,验证事件是否成功生成。
内容的提问来源于stack exchange,提问作者Vytautas Pranskunas
相关产品推荐
相关产品推荐

