Sha256: 3618924464688cbef91c20d5741e87d1765147835e2c283032d6531f4933edee

Contents?: true

Size: 1.21 KB

Versions: 16

Compression:

Stored size: 1.21 KB

Contents

module Pay
  module Stripe
    module Webhooks
      class CheckoutSessionCompleted
        def call(event)
          # TODO: Also handle payment intents

          locate_owner(event.data.object)

          if (payment_intent_id = event.data.object.payment_intent)
            payment_intent = ::Stripe::PaymentIntent.retrieve(payment_intent_id, {stripe_account: event.try(:account)}.compact)
            payment_intent.charges.each do |charge|
              Pay::Stripe::Charge.sync(charge.id, stripe_account: event.try(:account))
            end
          end

          if (subscription_id = event.data.object.subscription)
            Pay::Stripe::Subscription.sync(subscription_id, stripe_account: event.try(:account))
          end
        end

        def locate_owner(object)
          return if object.client_reference_id.nil?

          # If there is a client reference ID, make sure we have a Pay::Customer record
          owner = GlobalID::Locator.locate_signed(object.client_reference_id)
          owner&.add_payment_processor(:stripe, processor_id: object.customer)
        rescue
          Rails.logger.debug "[Pay] Unable to locate record with SGID: #{object.client_reference_id}"
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
pay-6.1.0 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-6.0.3 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-6.0.2 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-6.0.1 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-6.0.0 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-5.0.4 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-5.0.3 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-5.0.2 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-5.0.1 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-5.0.0 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-4.2.1 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-4.2.0 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-4.1.1 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-4.1.0 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-4.0.4 lib/pay/stripe/webhooks/checkout_session_completed.rb
pay-4.0.2 lib/pay/stripe/webhooks/checkout_session_completed.rb