Stripe connect managed accounts
I'm trying to add webhooks to stripe using stripe connect and managed accounts https://stripe.com/docs/connect/webhooks
I'm using the stripe_events plugin and have followed your stripe webhooks video. I nearly have it working but I have to add an "account" attribute somewhere?!?! I've been looking at the screen to long. Can you please help!
#initializers/strip.rb
Stripe.api_key = Rails.configuration.stripe[:secret_key]
class RecordAccount
def call(event)
event = event.data.object
account = event.account
#Look up StripeAccount in our database
stripe_account = StripeAccount.where(stripe_id: account).last
#Record Verification details, status in StripeAccount
u = stripe_account.update_attributes(verification_status: event.legal_entity.verification.status, verification_details: event.legal_entity.verification.details)
u.save
end
end
StripeEvent.configure do |events|
events.subscribe 'account.updated', RecordAccount.new
end
Ended up removing the stripe_event gem and set up webhooks manually. Was very easy...
created a webhooks_controller.rb and new post route
begin
payload = JSON.parse(request.body.read)
# Verify the event by fetching it from Stripe
if payload['account'].present?
# This is for connected accounts
event = Stripe::Event.retrieve(payload['id'], stripe_account: payload['account'])
@stripe_object = event.data.object
@stripe_account_update = StripeAccount.where(stripe_id: payload['account']).first!
# update verification status etc in db
u = @stripe_account_update.update_attributes(
verification_status: @stripe_object.legal_entity.verification.status,
verification_details: @stripe_object.verification.fields_needed
)
else
# Normal events not using stripe_event
Stripe::Event.retrieve(payload['id'])
end
rescue Stripe::StripeError => e
# Handle this however you prefer
raise ActiveRecord::RecordNotFound.new(e)
end
Only thing I need to figure out is how to read the event type "account_created", "account_updated" etc. Haven't looked into it yet. But I'm sure there's nothing to it.