付款成功后完成订单 Stripe Rails

Fulfill order after Successful payment Stripe Rails

我有一个很小的 ​​rails 应用程序。目前,我的应用程序使用 Stripe & Pay Gem 进行订阅,这非常简单。但是现在我遇到了一个问题,或者我不知道如何在成功付款后添加一些自定义操作。

这就是我想要做的。

我有一个名为 Theme 的模型,该模型有一个文件字段。现在我希望付款后用户会收到一封包含文件 link 的电子邮件。

这里有人可以给我一些指导吗?

更新:

我从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

如果有人可以指导我完成这个?

谢谢

我以前没有用过支付Gem,但是在文档中,有关于成功支付后需要做什么的描述:

Fulfilling orders after Checkout completed

For one-time payments, you'll need to add a webhook listener for the Checkout stripe.checkout.session.completed and stripe.checkout.session.async_payment_succeeded events. Some payment methods are delayed so you need to verify the payment_status == "paid". The async payment succeeded event fires when delayed payments are complete.

因此,基于此,在您的 webhook 侦听器中,您将触发 SMTP 或其他一些电子邮件发送方式,并有一个 link 到 theme.file_name。根据您向用户发送电子邮件的方式,处理方式有所不同。

设法通过添加

来解决它
Pay::Webhooks.delegator.subscribe "stripe.checkout.session.completed", FulfillCheckout.new Pay::Webhooks.delegator.subscribe "stripe.checkout.session.async_payment_succeeded", FulfillCheckout.new

支付初始化文件