Я использую Koudoku для подписки.Я хочу делать разные вещи после получения веб-крючка Stripe.
В документах он показывает, что вы можете добавить обратный вызов, например:
Koudoku.setup do |config|
config.subscriptions_owned_by = :user
config.stripe_publishable_key = ENV['STRIPE_PUBLISHABLE_KEY']
config.stripe_secret_key = ENV['STRIPE_SECRET_KEY']
# add webhooks
config.subscribe 'charge.failed', YourChargeFailed
end
Что я могуне могу понять, как написать YourChargeFailed
часть.Я пробовал что-то вроде:
config.subscribe 'order.payment_succeeded', ActiveRecord::Subscription.after_successful_payment
, но я получаю undefined method after_successful_payment for #<Class:0x007fb845849b30>
Как я могу успешно подписаться на события Stripe, захватить возвращаемые данные и инициировать функцию обратного вызова?
Спасибо!
ОБНОВЛЕНИЕ
Вот то, что я пробовал, и соответствующие ошибки, которые я получаю:
purchaseases_helper.rb
module PurchasesHelper
require 'stripe'
def stripe_webhook(event)
puts 'Purchases Helper'
puts 'invoice.payment_succeeded'
@customer = Stripe::Customer.retrieve(event[:data][:object][:customer])
@user = User.find_by(email: @customer[:email])
@badge = Badge.find_by(condition: '2019Purchase')
@badges_user = BadgesUser.find_by(user_id: @user.id, badge_id: @badge.id)
# if @badges_user === nil
# BadgesUser.create(user_id: user.id, badge_id: badge.id)
# end
puts 'badge created'
end
end
инициализаторы / koudoku.rb
Koudoku.setup do |config|
include ::PurchasesHelper
config.subscribe 'charge.succeeded' do |event|
puts 'charge created'
::PurchasesHelper.stripe_webhook(event)
end
end
ОШИБКА:
undefined method `stripe_webhook' for PurchasesHelper:Module excluded from capture: Not configured to send/capture in environment 'development'
NoMethodError (undefined method `stripe_webhook' for PurchasesHelper:Module):
Другая попытка:
Koudoku.setup do |config|
config.subscribe 'charge.succeeded' do |event|
puts 'charge created'
PurchasesHelper.stripe_webhook(event)
end
end
ОШИБКА:
undefined method `stripe_webhook' for PurchasesHelper:Module excluded from capture: Not configured to send/capture in environment 'development'
NoMethodError (undefined method `stripe_webhook' for PurchasesHelper:Module):
3-я попытка:
Koudoku.setup do |config|
include PurchasesHelper
config.subscribe 'charge.succeeded' do |event|
puts 'charge created'
stripe_webhook(event)
end
end
ОШИБКА:
A copy of PurchasesHelper has been removed from the module tree but is still active! excluded from capture: Not configured to send/capture in environment 'development'
ArgumentError (A copy of PurchasesHelper has been removed from the module tree but is still active!):