You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stripe Checkout技术疑问:用已保存Source还是新Token创建Charge?

关于Stripe Checkout后续Charge创建的最佳实践

Great question—this is a common gotcha when balancing saved customer convenience and flexible payment options with Stripe. Let's break this down clearly:

核心逻辑:根据客户当前的付款选择来决定方案

Stripe建议保存客户信息(含默认Source)是为了提升回头客的结账体验,但这并不意味着你要一直依赖这个默认Source。正确的做法分两种场景:

  • 当客户使用已保存的付款方式结账时:
    直接用客户的默认Source创建Charge完全没问题,这也是Stripe推荐的优化方式,能避免客户重复输入卡信息。但要记得监听charge.failed这类webhook事件——如果默认Source失效(比如卡过期、挂失),得及时引导客户重新提供支付信息。

  • 当客户使用新信用卡结账时:
    这时候绝对不能再用旧的默认Source,你有两个合理的选择:

    1. 直接用stripe.js返回的新Token创建Charge,同时可以调用API把该客户的默认Source更新为新Token对应的Source,这样下次客户再来时默认就是新卡了。
    2. 先把新Token关联到客户(创建新的Source并设为客户默认),再通过客户ID创建Charge——这种方式更适合需要长期保存新付款方式的场景。

要不要始终用Token?

答案是不需要。你应该根据客户的实际付款选择灵活切换:

  • 老客户用旧卡 → 用客户默认Source
  • 老客户换用新卡 → 用新Token(可选更新默认Source)
  • 新客户首次结账 → 保存客户+Source,后续按需处理

这样既保证了交易成功率,又能兼顾用户体验和业务需求。

内容的提问来源于stack exchange,提问作者saturdayplace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:36:55