首页 > Java > java教程 > 正文

使用 Stripe 实现手动/自动捕获

心靈之曲
发布: 2025-09-17 16:58:01
原创
882人浏览过

使用 stripe 实现手动/自动捕获

本文将指导您如何在 Stripe 中灵活控制支付捕获的时机,既可以设置自动捕获,也可以使用手动捕获,以便在特定时间点或满足特定条件后才真正完成交易。

PaymentIntent 的捕获方式

Stripe 提供了两种主要的 PaymentIntent 捕获方式:自动捕获和手动捕获。默认情况下,PaymentIntent 创建后会自动捕获授权金额。如果您需要更精细地控制捕获时机,可以选择手动捕获。

手动捕获的实现步骤

  1. 创建 PaymentIntent 并设置 capture_method 为 manual:

    在创建 PaymentIntent 时,将 capture_method 参数设置为 manual。这将指示 Stripe 仅预授权付款,而不是立即捕获。预授权有效期最长为 7 天。

    import stripe
    
    stripe.api_key = "YOUR_STRIPE_SECRET_KEY"
    
    payment_intent = stripe.PaymentIntent.create(
        amount=1000,  # 金额,单位为分
        currency="usd",
        capture_method="manual",
        payment_method_types=["card"],
    )
    
    print(payment_intent.id)
    登录后复制

    注意: 将 YOUR_STRIPE_SECRET_KEY 替换为您的 Stripe Secret Key。

    千面视频动捕
    千面视频动捕

    千面视频动捕是一个AI视频动捕解决方案,专注于将视频中的人体关节二维信息转化为三维模型动作。

    千面视频动捕 27
    查看详情 千面视频动捕
  2. 在预定时间后捕获 PaymentIntent:

    使用 Stripe API 的 capture endpoint 手动捕获 PaymentIntent。您可以使用 payment_intent.capture() 方法,也可以使用 stripe.PaymentIntent.capture() 方法。

    import stripe
    import time
    
    stripe.api_key = "YOUR_STRIPE_SECRET_KEY"
    
    payment_intent_id = "YOUR_PAYMENT_INTENT_ID" # 替换为实际的 PaymentIntent ID
    
    # 等待5分钟
    time.sleep(300)
    
    try:
        payment_intent = stripe.PaymentIntent.capture(payment_intent_id)
        print("Payment captured successfully!")
        print(payment_intent)
    
    except stripe.error.StripeError as e:
        print(f"Error capturing payment: {e}")
    登录后复制

    注意: 将 YOUR_STRIPE_SECRET_KEY 替换为您的 Stripe Secret Key,并将 YOUR_PAYMENT_INTENT_ID 替换为实际的 PaymentIntent ID。上述代码示例中,我们使用 time.sleep(300) 模拟等待 5 分钟。在实际应用中,您可以根据需要调整等待时间。

注意事项

  • 有效期: 请注意,预授权的有效期最长为 7 天。如果在此期间未捕获付款,预授权将失效。
  • 部分捕获: 使用 capture() 方法进行捕获时,只能全额捕获预授权的金额。Stripe 不支持部分捕获。如果需要部分退款,可以使用 Stripe 的退款功能。
  • 错误处理: 在捕获 PaymentIntent 时,务必进行错误处理,以应对可能出现的异常情况,例如余额不足、卡片失效等。
  • 时区问题: 在安排延迟捕获时,请注意时区问题,确保在正确的时间捕获付款。

总结

通过设置 capture_method 为 manual 并结合 capture endpoint,您可以灵活地控制 Stripe PaymentIntent 的捕获时机,从而满足各种业务场景的需求。这种方法特别适用于需要延迟捕获付款的场景,例如订单发货后或服务完成后。请务必仔细阅读 Stripe 官方文档,并根据您的具体需求进行调整和测试。

以上就是使用 Stripe 实现手动/自动捕获的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号