Mar*_*eck 4 ruby stripe-payments
我有一个使用 Stripe Payments 的应用程序。我们正在创建一次性付款,而不是将客户存储为对象。所以,我们有看起来像这样的服务器端 Ruby 代码......
Stripe::Charge.create(
currency: 'gbp',
amount: some_amount,
card: token,
description: 'Payment for awesome thing'
)
Run Code Online (Sandbox Code Playgroud)
令牌是在客户端生成的,使用 Stripe JS 库并包含(或者更确切地说,代表)客户提供的所有信息,即电子邮件地址、卡号等。
当交易到达 Stripe 时,它会从客户那里取钱,在我的 Stripe 仪表板中,我看到客户提供的所有详细信息,例如代码到期等。在卡片上我看到他们的名字,但名称设置为 e -邮件地址。
在这一切之下,我被告知......
No receipts sent — No email address for this payment
我是否缺少有关应调用此 API 的方式的某些内容。令牌显然包含该电子邮件地址(我将其视为 Stripe 仪表板上的卡片名称)。
如果我希望 Stripe 使用他们已经捕获的电子邮件地址来生成收据,我是否必须以另一种方式调用此 API?
Stripe 不会从令牌中检索电子邮件地址。创建一次性收费时,您必须在receipt_email字段中设置电子邮件,以便在收费成功时将收据发送到该电子邮件地址。
stripeEmail如果您使用的是 Simple Checkout,您可以从参数中检索电子邮件,否则从您存储它的参数中检索电子邮件,您的代码将是:
Stripe::Charge.create(
currency: 'gbp',
amount: some_amount,
card: token,
description: 'Payment for awesome thing',
receipt_email: email
)
Run Code Online (Sandbox Code Playgroud)
小警告,即使您提供该字段,电子邮件收据也永远不会以测试模式发送。
编辑我专注于为什么它之前不起作用,而不是在这种情况下您会收到电子邮件收据。
首先,您需要在仪表板设置中检查“通过电子邮件向客户发送成功付款”的设置。然后客户需要email设置字段。如果这两个都是真的,那么当您为该客户创建费用时,还会为您向该客户发送一封电子邮件收据(在实时模式下)。非免费订阅也会发生同样的情况,其中每张带有相关费用的发票都会通过电子邮件发送收据。