Выполняйте заказ после успешной оплаты Stripe Rails

#ruby-on-rails #ruby #stripe-payments

Вопрос:

У меня есть крошечное приложение rails. В настоящее время подписки активны в моем приложении с помощью Stripe amp; Pay Gem, что довольно просто. Но теперь у меня возникла проблема, или я не знаю, как я могу добавить какое-то пользовательское действие после успешной оплаты.

Итак, вот что я хочу сделать.

У меня есть модель под названием Тема, и в модели есть поле файла. Теперь я хочу, чтобы после оплаты пользователь получил электронное письмо со ссылкой на файл.

Кто-нибудь здесь может дать мне некоторые указания о том, как я могу это сделать?

Обновить:

У меня есть некоторые коды из документации по оплате, но я не знаю, как их реализовать.

 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. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Я раньше не использовал драгоценный камень оплаты, но в документах есть описание того, что нужно сделать после успешного платежа:

Выполнение заказов после завершения оформления заказа

Для разовых платежей вам потребуется добавить прослушиватель веб-крючка для событий Checkout stripe.checkout.session.completed и stripe.checkout.session.async_payment_succeeded. Некоторые способы оплаты задерживаются, поэтому вам необходимо проверить статус платежа == «оплачено». Событие асинхронного успешного платежа срабатывает при завершении отложенных платежей.

Таким образом, исходя из этого, в вашем прослушивателе webhook вы должны запустить SMTP или какой-либо другой способ отправки электронной почты и иметь ссылку на theme.file_name . Это обрабатывается по-разному в зависимости от того, как вы доставляете электронные письма своим пользователям.

Комментарии:

1.Привет @RailsDevNewbie Спасибо, что указал. Я видел документы, но я не уверен в коде, который они добавили. так что эта часть Pay::Webhooks.delegator.subscribe "stripe.checkout.session.completed", FulfillCheckout.new Pay::Webhooks.delegator.subscribe "stripe.checkout.session.async_payment_succeeded", FulfillCheckout.new « Я должен бежать с консоли? amp; Создать модель c и Добавить условия в модель? Как я могу сделать это с помощью каких-либо подсказок контроллера?

2. Удалось решить эту проблему благодаря @RailsDevNewbie за попытку помочь

Ответ №2:

Удалось решить эту проблему, добавив

 Pay::Webhooks.delegator.subscribe "stripe.checkout.session.completed", FulfillCheckout.new Pay::Webhooks.delegator.subscribe "stripe.checkout.session.async_payment_succeeded", FulfillCheckout.new
 

для оплаты файла инициализатора