调至内容部分
创建账户或登录
Stripe 文档徽标
/
询问人工智能
创建账户登录
开始
付款
销售收入
平台和交易市场
资金管理
开发人员资源
API 和 SDK帮助
概览
关于 Stripe 支付
升级您的集成
支付分析
线上付款
概览查找您的用例Use Managed Payments
使用 Payment Link
Use a prebuilt checkout page
Build a custom integration with Elements
    概览
    Quickstart guides
    Stripe Elements
    Compare Checkout Sessions and PaymentIntents
    设计高级集成
    自定义外观样式
    管理支付方式
    收集额外信息
    构建订阅集成
    Dynamic updates
    添加折扣
    对您的付款征税
    兑换抵用金
    让客户用本地货币支付
    保存并检索客户支付方式
    发送收据和已付账单
    在您的服务器上手动批准支付
    单独授权和捕获付款
    具有 Checkout Sessions API Beta 更改日志的 Element
构建应用内集成
线下支付
Terminal
支付方式
添加支付方式
管理支付方式
用 Link 更快结账
支付场景
处理多种货币
自定义支付流程
灵活收单
编排
超越支付功能
成立公司
加密货币
智能体商务 (Agentic Commerce)
Financial Connections
Climate
了解欺诈
Radar 欺诈保护
管理争议
验证身份
美国
简体中文
首页付款Build a custom integration with Elements

暂停某一支付方式

分开进行支付授权和捕获,以立即创建费用,但稍后捕获资金。

创建付款时,您可以暂时保留符合条件的支付方式,以保留可供以后捕获的资金。例如,酒店通常会在顾客到达前全额授权付款,然后在顾客结账时扣款。这有时也称为手动捕获。

授权付款通过在客户的付款方式上冻结金额来保证该金额。如果您使用的是 API,则收款上的 payment_method_details.card.capture_before 属性指示授权何时过期。

您需要在授权过期前捕获资金。如果授权在您捕获资金之前过期,资金将被释放,付款状态变为 canceled。了解有关异步付款状态的更多信息。

授权的有效窗口期

下表概述了授权不同交易类型的有效窗口期。

无卡交易

卡品牌商家发起的交易授权有效期窗口客户发起的交易授权有效期窗口
Visa5 天*7 天
Mastercard7 天7 天
American Express7 天7 天
Discover7 天7 天

  • 确切的授权窗口为 4 天 18 小时以留出清算时间。
  • 有卡交易(线下付款)

    卡品牌授权有效期窗口
    Visa5 天*
    Mastercard2 天
    American Express2 天
    Discover2 天

  • 确切的授权窗口为 4 天 18 小时以留出清算时间。
  • 日本的 30 天授权窗口期

    如果您的账户位于日本,则您可以将使用 Visa、Mastercard、JCB、Diners Club 和 Discover 的日元计价交易保留长达 30 天。非 JPY 和 American Express 交易在标准的 7 天窗口期后过期。

    注意

    自 2024 年 4 月 14 日起,Visa 将在线商家发起的交易的授权窗口从 7 天缩短为 5 天。Visa 还将线下 (Terminal) 交易的授权窗口从 2 天延长至 5 天。

    支付方式限制

    在实施之前,请了解以下单独授权和捕获的限制。

    • 只有部分支付方式支持单独授权和捕获。支持此功能的支付方式包括银行卡、Affirm、Afterpay、Cash App Pay、Klarna 和 PayPal。不支持此功能的一些支付方式包括 ACH 和 iDEAL。详细了解支付方式功能支持。

    • 除上表所示,其他支付方式的规则和授权窗口期也不同:

      • 银行卡支付:线上支付通常保留 7 天,线下 Terminal 支付通常保留 2 天(取决于交易类型和银行卡组织)。您可以为某些符合延长有效期的在线和 Terminal 支付授权申请延长有效授权期限。卡组织也可能会限制您不打算捕获的 1 美元授权。
      • Affirm:如果 Affirm 对金额非常大的订单要求首付,他们会在授权期间收取该金额,并在未收取付款时退款。然后您有 30 天的时间来收取剩余的付款。
      • Afterpay / Clearpay:在授权过程中,客户支付第一笔分期还款款项。如果从未捕获过付款,则 Afterpay 进行退款。然后,您有 13 天的时间来捕获付款余额。
      • Cash App Pay:必须在 7 天内捕获有效授权才能完成付款。
      • Klarna:您必须在发出收款请求后的第 28 个日历日午夜之前捕获收款,否则授权将过期。例如,您需要在 UTC 2020-10-01 14:00 至 UTC 2020-10-29 00:00 之前捕获收款请求。
      • PayPal:将金额保留 10 天。Stripe 会自动尝试将扣留期再延长 10 天,共计 20 天。您的结算首选项可能会影响授权期限。有关更多信息,请参见单独授权和捕获。

    使用管理平台进行授权并捕获

    您无需编写代码即可分别授权付款和捕获资金。

    1. 在管理平台中,创建新付款。选择一次性。
    2. 输入或选择支付方式时,选择更多选项,然后选择稍后捕获资金。

    这笔付款在您的支付页面上显示为未捕获。

    要捕获资金,请前往付款详情页面,然后点击捕获。

    告诉 Stripe 仅授权

    要表明您希望分离授权和捕获,请在创建 Checkout Session 时将 capture_method 指定为 manual。该参数将指示 Stripe 授权金额,但不从客户的支付方式上捕获。

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/checkout/sessions \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "line_items[0][price]"=
    "{{PRICE_ID}}"
    \ -d "line_items[0][quantity]"=2 \ -d mode=payment \ -d ui_mode=custom \ -d "payment_intent_data[capture_method]"=manual

    使用上述方法时,您告诉 Stripe,对于具有合格支付方式的 Checkout Session,只能使用“之后捕获”。

    扩展授权

    通常,在线银行卡支付的授权有效期为 7 天。要延长有效期,您可以延长线上银行卡付款的暂停时间。

    捕获资金

    Checkout Sessions 有一个 PaymentIntent ID

    如果您使用的是 Checkout Sessions API,请确保使用在 Checkout Session 对象中返回的 PaymentIntent ID。

    支付方式被授权后,PaymentIntent 的状态变为 requires_capture。要捕获授权资金,请发出 PaymentIntent 捕获请求。默认情况下,这会捕获全部授权金额。要捕获少于或(对于某些在线卡付款)多于初始金额,请传递 amount_to_capture 选项。部分捕获会自动释放剩余金额。如果尝试为在线卡付款捕获多于初始金额,请参阅超额捕获文档。

    以下示例演示如何从已授权的 10.99 美元付款中捕获 7.50 美元:

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents/pi_123/capture \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d amount_to_capture=750

    虽然某些银行卡付款符合多次捕获条件,但对于大多数付款,您只能对已授权的付款执行一次捕获。如果部分捕获了一笔付款,则不能再次捕获差额。(相反,请考虑保存客户的支付方式信息供以后使用,然后根据需要创建未来付款。)

    某些发卡行的银行卡对账单和支付方式的界面并不总是能区分授权和捕获(已结算)的付款,这有时会给客户造成混淆。

    此外,当客户通过手动捕获完成 PaymentIntent 的付款流程时,会触发 payment_intent.amount_capturable_updated 事件。您可以检查 PaymentIntent 的 amount_capturable 属性,以查看可以从 PaymentIntent 捕获的总金额。

    取消授权

    如果需要取消授权,您可以取消 PaymentIntent。

    授权到期前捕获付款 Public preview

    可以指示 Stripe 在授权到期前自动捕获,而非手动触发银行卡支付方式的捕获。使用自动延迟捕获,可以避免错过捕获授权付款。也可以自定义从授权到捕获这一过程的延迟时间段。

    要启用自动延迟捕获,请在 PaymentIntent 中将 capture_method 设置为 automatic_delayed:

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d "payment_method_options[card][capture_method]"=automatic_delayed

    通过这种方法,Stripe 会在授权到期前约 6 小时触发银行卡付款捕获,从而在授权到期前捕获付款。由此,作为一个备份过程,可以确保到期前完成授权付款捕获。也可以在自动捕获前,手动 捕获 或取消 PaymentInten。

    您可以通过纳入 capture_delay_days 参数来指定自定义的捕获延迟时间。该参数表示授权成功后延迟捕获的天数:

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d "payment_method_options[card][capture_method]"=automatic_delayed \ -d "payment_method_options[card][capture_delay_days]"=3

    在本例中,Stripe 会在授权成功后 3 天自动捕获 PaymentIntent。如果您知道在授权和捕获之间执行操作所需的时间,同时确保在授权到期前捕获,这将非常有用。

    注意

    使用 capture_method=automatic_delayed 时,Stripe 会优先在授权到期前捕获付款。如果授权窗口短于指定的延迟时间,我们会在过期前捕获 PaymentIntent,并忽略延迟时间。

    另见

    • 使用 Checkout 分离授权和捕获
    • 延长在线银行卡付款的暂停时间
    此页面的内容有帮助吗?
    是否
    • 需要帮助?联系支持。
    • 查看我们的更改日志。
    • 有问题?联系销售。
    • LLM? Read llms.txt.
    • Powered by Markdoc