成功付款后履行订单 Stripe Rails
Posted
技术标签:
【中文标题】成功付款后履行订单 Stripe Rails【英文标题】:Fulfill order after Successful payment Stripe Rails 【发布时间】:2021-12-09 03:31:03 【问题描述】:我有一个很小的 rails 应用程序。目前,订阅在我使用 Stripe 和Pay Gem 的应用程序中处于活动状态,这非常简单。但是现在我遇到了问题,或者我不知道如何在成功付款后添加一些自定义操作。
这就是我想要做的。
我有一个名为 Theme 的模型,该模型有一个文件字段。现在我想在付款后用户会收到一封包含文件链接的电子邮件。
这里的任何人都可以给我一些指导,我该怎么做?
更新:
我从pay documentation得到了一些代码,但不知道如何实现。
Pay::Webhooks.delegator.subscribe "stripe.checkout.session.completed", FulfillCheckout.new
Pay::Webhooks.delegator.subscribe "stripe.checkout.session.async_payment_succeeded", FulfillCheckout.new
class FulfillCheckout
def call(event)
object = event.data.object
if object.payment_status == "paid"
# Handle fulfillment
end
end
end
如果有人可以指导我完成这个?
谢谢
【问题讨论】:
请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:我之前没有使用过Pay Gem,但是在文档中,有一个关于成功付款后需要做什么的描述:
结帐完成后履行订单
对于一次性付款,您需要为 结帐 stripe.checkout.session.completed 和 stripe.checkout.session.async_payment_succeeded 事件。一些付款 方法被延迟,因此您需要验证 payment_status == “有薪酬的”。延迟付款时触发异步付款成功事件 已完成。
因此,基于此,在您的 webhook 侦听器中,您将触发 SMTP 或其他某种电子邮件发送方式,并拥有指向 theme.file_name
的链接。根据您向用户发送电子邮件的方式,处理方式会有所不同。
【讨论】:
嗨@RailsDevNewbie 感谢您的指出。我看过文档但我不确定他们添加的代码。所以这部分Pay::Webhooks.delegator.subscribe "stripe.checkout.session.completed", FulfillCheckout.new
Pay::Webhooks.delegator.subscribe "stripe.checkout.session.async_payment_succeeded", FulfillCheckout.new
```我必须从控制台运行? & 创建模型 c& 在模型上添加条件?我怎样才能从控制器任何提示中做到这一点?
设法解决了感谢@RailsDevNewbie 的帮助【参考方案2】:
设法通过添加来解决它
Pay::Webhooks.delegator.subscribe "stripe.checkout.session.completed", FulfillCheckout.new Pay::Webhooks.delegator.subscribe "stripe.checkout.session.async_payment_succeeded", FulfillCheckout.new
支付初始化文件
【讨论】:
以上是关于成功付款后履行订单 Stripe Rails的主要内容,如果未能解决你的问题,请参考以下文章