成功付款后履行订单 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.newPay::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的主要内容,如果未能解决你的问题,请参考以下文章

在django中付款成功后如何将订单存储在我的数据库中

在亚马逊 MWS 中更新订单状态后出现“无法履行订单”错误

微店客户支付成功了,银行卡也扣钱了,但是订单显示未付款,店家这边也显示未付款,这是啥情况?

Stripe - 支付订单错误:无法向没有活动卡的客户收费

为啥已经付款但是订单状态还是待付款?

Rails / Stripe - 付款不会处理