New Discussion

Notifications

You’re not receiving notifications from this thread.

Stripe connect managed accounts

1
Rails

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.

Join the discussion
Create an account Log in

Learning Ruby on Rails? Join our newsletter.

We won't send you spam. Unsubscribe at any time.