1. 先确认客户需要哪一种凭证
没有收到收据,不等于付款失败。一则公开开发者提问描述了订阅付款成功、已开启收据邮件,却仍未收到邮件的情况;它证明这种困惑确实存在,但不能作为 Stripe 当前规则的依据。[4] 排查前先问清:客户需要付款收据、已付款账单,还是用于请求付款的未付账单?
Stripe 为成功付款生成收据,包括订阅付款和账单付款。已付账单收据比标准收据包含更多细节;订阅自动生成账单,一次性付款则需要启用账单创建。[1] 账单定稿后的通知与付款后的收据是不同邮件类别。[2] 建议在工单中分别记录凭证需求和付款状态,不要把两者混成一个问题。
2. 选择对应的自动发送路径
自动发送付款收据时,在控制台依次打开设置、企业、客户邮件,启用成功付款邮件。退款收据有单独的退款开关。付款收据只在付款成功后发送,付款失败或被拒绝时不会发送。[1]
若一次性 Stripe Checkout 付款需要已付账单,应开启自动收据,并在创建会话时设置 invoice_creation[enabled]=true。付款成功后,Stripe 发送账单摘要,其中包含账单和付款收据的下载链接。这种一次性 Checkout 账单创建单独计费,批量启用前应核对当前价格。[1]
直接使用 PaymentIntent 的集成还应检查 receipt_email:在正式模式下,指定此参数会发送收据,不受账户邮件设置影响。[3] 因此,排查意外发送的收据时,建议同时检查请求参数和控制台开关,不能只看其中一处。
3. 将测试邮件单独验收
Stripe 当前收据文档要求:如果需要发送测试付款的收据,应手动发送。[1] 模拟付款成功但收件箱为空,不足以说明正式收据配置已损坏;反过来,测试付款成功也不能证明正式环境自动投递正常。
发送账单接口有明确限制:测试模式请求不会发送邮件,即使它产生了 invoice.sent 事件。[5] 因而,这个事件不是邮件到达收件箱的证据。重复调用该接口也不能代替重发付款收据:通过它发送已经付清的账单时,邮件不会提及该笔付款。[5]
建议分别记录模拟付款状态、收据预览或手动发送操作,以及独立观察到的收件结果。不要把一次测试中的这些不同结果合并成“邮件链路通过”。本文依据文档研究编写,没有进行正式账户邮件测试。
4. 等待付款成功,而不是等待返回页面
账单收据在付款成功后才发送,不是结账会话结束时发送。因此,异步付款方式可能较晚触发收据;Stripe 列举了银行转账和多种直接扣款方式。[1] 不要因为客户已返回网站,就承诺收据会立即到达。
Stripe 将 invoice.paid 列为需要以编程方式访问账单收据时可监听的事件。[1] 建议用付款和账单记录检查收据生成条件,再单独核查邮件证据。对客户可以说明付款确认仍在等待中,而不是虚构邮件到达时间。仅凭邮件缺失,不应要求客户再次付款。
5. 补发凭证,不要重新扣款
- 先核对收件人和成功付款记录,再在控制台打开该笔付款的收据历史,选择发送收据。Stripe 允许在发送前确认或更新邮箱地址。[1]
- 检查客户邮件日志:Stripe 在客户页面提供最近六十天内已发送邮件的日志。[2]
- 如果应用内需要提供收据链接,使用 Charge 的
receipt_url。收据链接在三十天后过期,但收据本身不会过期。[1]
建议在结案记录中注明凭证类型、测试或正式环境、付款状态、收件人核对结果和补救动作。只有实际观察到收件结果时,才记录“已收到”;开启开关或执行补发,都不保证邮件进入收件箱。
来源与日期
技术行为以官方文档为依据;社区提问只说明定性需求。于2026-09-22读取核验,检索日期不等于原文发布日期;未注明的日期仍视为未知。本文为文档研究,不是实际账户测试,不代表 PayIn 产品功能,也不是法律、税务或财务意见。账户资格与地区可用性需要另行确认。
- [1] 收据与已付账单 · 发布日期未注明; 更新日期未注明 · 核验于2026-09-22。
- [2] 发送客户邮件 · 发布日期未注明; 更新日期未注明 · 核验于2026-09-22。
- [3] 创建 PaymentIntent · 发布日期未注明; 更新日期未注明 · 核验于2026-09-22。
- [4] Stripe 订阅收据邮件问题 · 发布于2022-06-27; 更新于2022-06-27 · 核验于2026-09-22。
- [5] 发送手动付款账单 · 发布日期未注明; 更新日期未注明 · 核验于2026-09-22。