Sha256: a6c3ff2c4fe8d5c0d20f9e616795313a3a33efa68b57db8430eae46db14c8695

Contents?: true

Size: 1.14 KB

Versions: 52

Compression:

Stored size: 1.14 KB

Contents

module Pay
  module Stripe
    module Webhooks
      class SubscriptionRenewing
        # Handles `invoice.upcoming` webhook from Stripe
        # Occurs X number of days before a subscription is scheduled to create an invoice that is automatically charged—where X is determined by your subscriptions settings. Note: The received Invoice object will not have an invoice ID.

        def call(event)
          # Event is of type "invoice" see:
          # https://stripe.com/docs/api/invoices/object
          pay_subscription = Pay::Subscription.find_by_processor_and_id(:stripe, event.data.object.subscription)
          return unless pay_subscription

          # Stripe subscription items all have the same interval
          price = event.data.object.lines.data.first.price

          if Pay.send_email?(:subscription_renewing, pay_subscription, price)
            Pay.mailer.with(
              pay_customer: pay_subscription.customer,
              pay_subscription: pay_subscription,
              date: Time.zone.at(event.data.object.next_payment_attempt)
            ).subscription_renewing.deliver_later
          end
        end
      end
    end
  end
end

Version data entries

52 entries across 52 versions & 1 rubygems

Version Path
pay-8.3.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-8.2.2 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-8.2.1 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-8.2.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-8.1.3 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-8.1.2 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-8.1.1 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-8.1.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-8.0.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-7.3.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-7.2.1 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-7.1.1 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-7.1.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-7.0.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-6.8.1 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-6.8.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-6.7.2 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-6.7.1 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-6.7.0 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-6.6.1 lib/pay/stripe/webhooks/subscription_renewing.rb