Stripe Payment 未生成电子邮件收据

E-mail Receipts Not Generated with Stripe Payment

我有一个使用 Stripe Payments 的应用程序。我们正在创建一次性付款,而不是将客户存储为一个对象。所以,我们的服务器端 Ruby 代码看起来像这样...

Stripe::Charge.create(
  currency: 'gbp',
  amount: some_amount,
  card: token,
  description: 'Payment for awesome thing'
)

令牌是在客户端生成的,使用 Stripe JS 库并包含(或者更确切地说,表示)客户提供的所有信息,即电子邮件地址、卡号等。

当交易到达 Stripe 时,它​​会从客户那里取款,在我的 Stripe 仪表板中,我会看到客户提供的所有详细信息,例如代码到期等。在卡片上我看到他们的名字,但名字设置为电子邮件地址。

在这一切之后我被告知...

No receipts sent — No email address for this payment

关于 API 的调用方式,我是否遗漏了什么。令牌清楚地包含该电子邮件地址(我将其视为 Stripe 仪表板上的卡名)。

如果我希望 Stripe 使用他们已经捕获的电子邮件地址来生成收据,我是否必须以另一种方式调用此 API?

Stripe 不会从令牌中检索电子邮件地址。当您创建一次性收费时,您必须在 receipt_email 字段中设置电子邮件,以便在收费成功时向该电子邮件地址发送收据。

如果您使用的是 Simple Checkout,则可以从 stripeEmail 参数检索电子邮件,否则可以从存储它的参数检索电子邮件,您的代码将只是:

Stripe::Charge.create(
  currency: 'gbp',
  amount: some_amount,
  card: token,
  description: 'Payment for awesome thing',
  receipt_email: email
)

小警告,即使您提供该字段,也永远不会在测试模式下发送电子邮件收据。

编辑 我专注于为什么它以前不起作用,而在这种情况下你会收到电子邮件收据。

首先,您需要在仪表板 settings 中检查 "Email customers for successful payments" 的设置。然后客户需要设置 email 字段。如果这两个是真的,那么当您为该客户创建费用时,电子邮件收据也会为您发送给该客户(在实时模式下)。非免费订阅也会发生同样的情况,其中每张带有相关费用的发票都会通过电子邮件发送收据。