You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Stripe创建无订阅发票后自动发送邮件的技术咨询

解决Stripe无订阅发票自动发送的问题

嘿,我之前也碰到过一模一样的情况——用API创建完无订阅发票后,默认确实不会自动推送到客户邮箱,只能在控制台手动点发送。不过有两种实用的方法能搞定自动发送的需求:

1. 创建发票后直接调用发送API

这是最直接的方式:当你通过API完成发票创建后,紧接着调用Stripe的发送发票接口就能触发邮件推送。给你几个主流编程语言的示例:

Node.js 示例

const stripe = require('stripe')('你的测试密钥');

// 先创建无订阅发票
const invoice = await stripe.invoices.create({
  customer: 'cus_xxxxxx',
  collection_method: 'send_invoice',
  days_until_due: 14,
  // 按需添加发票项等参数
});

// 立即触发邮件发送
await stripe.invoices.sendInvoice(invoice.id);

Python 示例

import stripe
stripe.api_key = "你的测试密钥"

# 创建发票
invoice = stripe.Invoice.create(
  customer='cus_xxxxxx',
  collection_method='send_invoice',
  days_until_due=14,
  # 按需添加发票项等参数
)

# 发送发票邮件
stripe.Invoice.send_invoice(invoice.id)

小提示:如果你的发票是先创建为draft(草稿)状态,需要先调用finalize_invoice接口将其定稿,再执行发送操作。

2. 通过Webhook自动触发发送

如果你的发票是自动生成的(比如定时任务批量创建),可以用Stripe的Webhook监听发票状态变化,当发票变为finalized(已定稿)状态时,自动调用发送接口。

具体步骤:

  • 登录Stripe控制台,在Webhook设置中添加invoice.finalized事件的监听地址
  • 你的后端服务接收该Webhook事件后,提取发票ID,调用send_invoice接口完成发送

这种方式更适合全自动化场景,不需要在创建发票的代码里额外插入发送逻辑。

测试模式的小提醒

测试环境下Stripe不会真的发送邮件到真实邮箱,但你可以在控制台的测试数据 > 邮件日志里查看模拟推送的邮件内容。另外,记得给客户填写有效的测试邮箱(比如test@example.com这类标准测试地址)。

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

火山引擎 最新活动