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

如何通过Stripe API发送PDF发票邮件并直接获取发票PDF文件?

解决方案:通过Stripe API获取发票PDF并发送邮件

当然有可行的方案!Stripe API本身就提供了直接获取发票PDF的能力,甚至还能帮你自动完成邮件发送的步骤,下面我分几种场景给你详细说明:

1. 获取Stripe生成的发票PDF链接

当发票处于**已定稿(finalized)**状态时,Stripe会自动生成对应的PDF文件,并提供一个临时访问链接。你只需要调用「获取发票」API就能拿到这个链接:

举个Python代码示例:

import stripe

stripe.api_key = "sk_your_secret_key"

# 替换为你的实际发票ID
invoice = stripe.Invoice.retrieve("in_XXXXXXXXXXXX")

# 提取PDF临时链接,有效期约7天
pdf_url = invoice.invoice_pdf

拿到这个pdf_url后,你可以直接把它插入到自定义邮件中发给客户,或者下载到本地后作为附件发送。

2. 直接下载PDF文件内容

如果需要把PDF保存到自己的服务器再发送,你可以向上面拿到的pdf_url发送GET请求,带上你的Stripe密钥作为授权头,就能获取二进制的PDF内容:

import requests

response = requests.get(
    pdf_url,
    headers={"Authorization": f"Bearer {stripe.api_key}"}
)

# 将PDF保存到本地服务器
with open("customer_invoice.pdf", "wb") as file:
    file.write(response.content)

3. 让Stripe自动发送发票邮件(最省心的方式)

其实你完全不用自己处理邮件和PDF的生成——Stripe内置了发票邮件发送功能,调用API就能让Stripe自动把带PDF附件的发票邮件发给客户:

# 给已定稿的发票发送邮件
stripe.Invoice.send_invoice("in_XXXXXXXXXXXX")

你也可以在创建发票时直接设置send_invoice=True,让Stripe在发票定稿后自动触发邮件:

invoice = stripe.Invoice.create(
    customer="cus_XXXXXXXXXXXX",
    collection_method="send_invoice",
    days_until_due=30,
    send_invoice=True,  # 开启自动发送邮件
    # 其他发票参数(如商品、金额等)...
)

邮件的模板可以在Stripe后台的「设置→发票设置→邮件模板」里自定义样式和内容,完全适配你的品牌需求。

关键注意事项

  • 只有已定稿的发票才会生成invoice_pdf链接,草稿状态的发票无法获取;
  • invoice_pdf链接是临时的,有效期约7天,若需要长期存储建议下载到自己的服务器;
  • 确保你的Stripe账户已经完善了发票模板的公司信息、Logo等配置,这样生成的PDF才会符合你的品牌规范。

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

火山引擎 最新活动