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

Stripe订阅支付成功后未向用户发送邮件收据问题咨询

Stripe订阅支付成功后不发送邮件收据的解决方法

核心排查点

  • 环境配置隔离问题:Stripe测试环境、生产环境的邮件发送配置完全独立,生产视图下开启的邮件权限不会同步到测试环境。你需要切到测试模式视图,在客户邮件配置页单独打开测试环境的「支付成功自动发送收据」开关即可触发测试环境发信,不存在测试模式完全不能自动发送邮件的限制。
  • 配置项遗漏检查:进入账单设置页,确认「成功支付后向客户发送收据」「订阅首次支付成功发送确认邮件」两个开关均处于开启状态,不要只开启通用邮件权限。
    Stripe邮件配置页截图1
    Stripe邮件配置页截图2

代码补全方案

你当前的代码没有显式声明发票、收据的发送规则,可补充对应配置做兜底,避免默认配置不生效的问题:

const price = await stripe.prices.retrieve('priceId')

const customer = await stripe.customers.create({
  email: user.email,
  name: `${user.firstname} ${user.surname}`,
})

const subscription = await stripe.subscriptions.create({
  customer: customer.id,
  items: [
    {
      price: price.id,
      quantity,
    },
  ],
  payment_behavior: 'default_incomplete',
  payment_settings: { 
    save_default_payment_method: 'on_subscription'
  },
  // 显式指定自动扣费模式下自动发送发票收据
  collection_method: 'charge_automatically',
  expand: ['latest_invoice.payment_intent'],
})

// 支付成功回调中可加兜底触发逻辑,确保收据发出
// 注意:需要监听invoice.paid事件触发时执行,不要在创建订阅后立即调用
// await stripe.invoices.sendInvoice(invoiceId)

验证步骤

  • 配置完成后发起一笔测试支付,支付完成后去Stripe后台事件日志页查找invoice.paid事件,查看事件返回值中receipt_sent字段是否为true,为false说明配置仍未生效。
  • 若日志显示已发送但客户未收到邮件,检查客户邮箱的垃圾邮件文件夹,确认Stripe官方发件地址未被邮箱服务商拦截。
  • 生产环境下只要配置正确,不需要手动调用发件接口,Stripe会自动完成收据推送;测试环境如果自动发件不生效,可通过上面的sendInvoice接口手动触发。

内容的提问来源于stack exchange,提问作者beginnersLuck.css

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:33:10