Функции рельсов 4 - stripe_event
Я использую услугу оплаты Stripe с драгоценными камнями stripe
и stripe_event
. Пока все хорошо - они отлично работают.
Я хочу использовать прослушиватель webtooks stripe_event
, чтобы выполнить кучу действий. Например, когда Stripe отправляет webhook, предлагая приложение новой подписки, я хочу добавить эту подписку в таблицу subscriptions
, отправить электронное письмо новому пользователю, сообщить администраторам и т.д.
В (очень скудный) stripe_event
docs на github они говорят, чтобы подписаться на объект с помощью метода call
и показать пример как
class CustomerCreated
def call(event)
# Event handling
end
end
Однако они не показывают, где находится этот код (какой файл он будет помещен) или как он вызывается из config/initializers/stripe.rb
.
Может ли кто-нибудь дать ясный пример того, как их использовать?
Ответы
Ответ 1
Что бы я сделал, это создать новый каталог app/stripe_handlers
и вставить этот код в файл с именем customer_created.rb
. Любой код в app/
автоматически загружается Rails. Вы также можете вставить его где-нибудь в lib/
, но он не получит автозагрузку.
Вы отправили бы ваш обработчик из вашего вопроса в app/stripe_handlers/customer_created.rb
, а затем в config/initializers/stripe_event.rb
вы сказали бы что-то вроде:
StripeEvent.configure do |events|
events.subscribe 'customer.created', CustomerCreated.new
end
Когда StripeEvent
получает событие с типом customer.created
, он вызывает метод call
в экземпляре CustomerCreated
, который вы сделали в инициализаторе.