我想要接收實時的條帶化Web鉤子,爲了做到這一點,我必須使用初始化程序。使用Stripe_events gem。我不太熟悉初始值設定項,但我在這裏學習!如何在初始化程序中調用處理程序方法?創建webhooks
- 我想用我的event
(webhook)用handler_method調用。
我的初始化/ stripe.rb
Rails.configuration.stripe = {
:publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
:secret_key => ENV['STRIPE_SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
StripeEvent.configure do |events|
events.subscribe 'charge.succeeded', ReservationsController.new
events.all = AllEvents.new
end
正如你可以看到我設置events.all = AllEvents.new
我想所有的事件調用此一個stripe_handler。基於event.type是什麼。 'charge.succeeded'
if event.type == 'charge.succeeded'
etc........
end
在app/stripe_handlers
/all_events.rb
class AllEvents
def call(event)
if event.type == 'charge.succeeded'
reservation = Reservation.find_by_transaction_id(event.object.id)
reservation.update_attributes pay_completed: true
# reservation = Reservation.find_by_transaction_id
elsif event.type == 'customer.created'
elsif event.type == 'account.application.deauthorized'
# look out for account.updated and check if the account ID is unknown
end
end
end
所有的一切,我想將events.all值發送到handler_methods在那裏我可以爲每個網絡掛接操作。
嗯,當你說「的handle_method所有值」,你的意思是像個人的方法來處理各種事件?如果是這種情況,那麼我不明白什麼阻止你製作個人「handler_methods」。 – Rashmirathi
是的!像這個'def call(event)'是假設接收事件,然後在裏面我使用事件值,這是剛剛發送的webhook特定事件 –