Sha256: e5ead0f32086987b675d252f7cfda5374c4e6da548111f68658cd7d2034d8c94

Contents?: true

Size: 1.28 KB

Versions: 17

Compression:

Stored size: 1.28 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
          subscription = Pay::Subscription.find_by_processor_and_id(:stripe, event.data.object.subscription)
          return unless subscription

          # Stripe subscription items all have the same interval
          price = event.data.object.lines.data.first.price
          return unless price.type == "recurring"

          interval = price.recurring.interval
          return unless interval == "year"

          notify_user(subscription.customer.owner, subscription, Time.zone.at(event.data.object.next_payment_attempt))
        end

        def notify_user(billable, subscription, date)
          if Pay.send_emails
            Pay::UserMailer.with(billable: billable, subscription: subscription, date: date).subscription_renewing.deliver_later
          end
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
pay-3.0.17 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.16 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.15 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.14 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.13 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.12 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.11 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.10 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.9 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.8 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.7 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.6 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.5 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.4 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.2 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.1 lib/pay/stripe/webhooks/subscription_renewing.rb
pay-3.0.0 lib/pay/stripe/webhooks/subscription_renewing.rb