class PayPal::SDK::Subscriptions::Subscription

developer.paypal.com/docs/api/subscriptions/v1/#subscriptions developer.paypal.com/docs/api/subscriptions/v1/#definition-subscription

Public Class Methods

path(resource_id = nil) click to toggle source
# File lib/paypal-sdk/subscriptions/subscription.rb, line 6
def self.path(resource_id = nil)
  "v1/billing/subscriptions/#{resource_id}"
end

Public Instance Methods

activate() click to toggle source
# File lib/paypal-sdk/subscriptions/subscription.rb, line 98
def activate
  commit("#{path(id)}/activate")
end
cancel() click to toggle source
# File lib/paypal-sdk/subscriptions/subscription.rb, line 103
def cancel
  commit("#{path(id)}/cancel")
end
capture(note, amount) click to toggle source

@return [Transaction] Transaction info

# File lib/paypal-sdk/subscriptions/subscription.rb, line 109
def capture(note, amount)
  payload = { amount: amount, note: note, capture_type: 'OUTSTANDING_BALANCE' }

  response = api.post("#{path(id)}/capture", payload, http_header)

  transaction = Transaction.new(response)
  transaction.merge!(response)
  transaction.raise_error!
  transaction
end
suspend(note) click to toggle source
# File lib/paypal-sdk/subscriptions/subscription.rb, line 121
def suspend(note)
  commit("#{path(id)}/suspend", reason: note)
end
transactions(options = {}) click to toggle source

option :start_time [Time|String] (required) option :end_time [Time|String] (default: now)

# File lib/paypal-sdk/subscriptions/subscription.rb, line 147
def transactions(options = {})
  options[:start_time] ||= create_time
  options[:end_time] ||= Time.now.utc

  start_time = DateTime.parse(options[:start_time].to_s).strftime('%Y-%m-%dT%H:%M:%S.%L%:z')
  end_time = DateTime.parse(options[:end_time].to_s).strftime('%Y-%m-%dT%H:%M:%S.%L%:z')

  response = api.get("#{path(id)}/transactions", start_time: start_time, end_time: end_time)

  page = Transaction::Page.new(response)
  page.merge!(response)
  page.raise_error!
  page
end