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

如何在Stripe订阅中使用默认支付方式完成多订阅的收款?

解决Stripe订阅发票付款失败(incomplete状态)问题

要让客户使用已绑定的默认支付方式自动完成新订阅的付款,你需要调整订阅创建参数,并确保支付方式的有效性:

1. 确认客户的默认支付方式

先检查目标客户(cus_NWCqvdBhiQRQ2a)已绑定有效的默认支付方式:

  • 登录Stripe后台,进入该客户详情页,查看「发票设置」中的「默认支付方式」是否存在且状态正常(无过期、冻结等问题)。
  • 如果客户没有默认支付方式,需先将之前收集的支付方式附加到客户并设为默认:
    // 附加支付方式到客户
    await stripe.paymentMethods.attach(
      '{{支付方式ID}}',
      {customer: 'cus_NWCqvdBhiQRQ2a'}
    );
    // 设置为默认支付方式
    await stripe.customers.update(
      'cus_NWCqvdBhiQRQ2a',
      {invoice_settings: {default_payment_method: '{{支付方式ID}}'}}
    );
    

2. 修改订阅创建参数

创建新订阅时,添加关键参数让Stripe自动调用默认支付方式完成付款:

let subs = {
    "customer": "cus_NWCqvdBhiQRQ2a",
    "items": [
        {
            "price_data": {
                "currency": "usd",
                "product": "prod_N8tG4peHRPUrsn",
                "recurring": { "interval": "month" },
                "unit_amount_decimal": "2150"
            },
            "quantity": 2
        }],
    "metadata": {},
    // 立即尝试用默认支付方式支付首次发票
    "payment_behavior": "pay_now",
    // 可选:明确指定支付方式(省略时Stripe会自动使用客户默认)
    "default_payment_method": '{{客户的默认支付方式ID}}',
    "payment_settings": {
        // 确保包含客户支付方式的类型(如银行卡)
        "payment_method_types": ["card"],
        // 确保支付方式被保存为订阅默认方式
        "save_default_payment_method": "on_subscription"
    }
}

3. 处理已创建的incomplete订阅

如果已经生成了状态为incomplete的订阅,可通过API触发再次付款:

// 从订阅对象的latest_invoice字段获取发票ID
await stripe.invoices.pay('{{发票ID}}', {
    customer: 'cus_NWCqvdBhiQRQ2a'
});

关键说明:

  • payment_behavior: "pay_now"会让Stripe在创建订阅时立即发起扣款,成功后订阅状态变为active;若扣款失败,订阅会进入incomplete,你可设置自动重试或手动触发付款。
  • 需确保客户的支付方式支持该订阅的金额、币种,且未被银行拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:22:54